我正陷入下一个关于在Sale Model模板中实时加载字段的情况 .
我有两个与ForeignKey相关的模型(Item和Sale) .
销售模式
class Sale(models.Model):
sale_item = models.ForeignKey(Item, on_delete=models.CASCADE)
new_price = models.IntegerField()
def saveSale(self):
self.save()
def __str__(self):
return self.sale_item.name
项目模型
class Item(models.Model):
name = models.CharField(max_length=40)
desc = models.CharField(max_length=150)
price = models.IntegerField(max_length=7)
pic = models.ImageField(upload_to='items_store')
element_choice = (
('USB', 'USB'),
('PC', 'PC'),
('TEXT', 'Book'),
)
element = models.CharField(choices=element_choice, max_length=10)
stock = models.IntegerField()
is_sale = models.BooleanField(default=False)
def saveItem(self):
self.save()
def __str__(self):
return self.name
我为Sale Model创建了一个表单
class formSale(forms.ModelForm):
sale_item = forms.ModelChoiceField(queryset=Item.objects.all(), label='sale_item')
new_price = models.IntegerField(label='new_price')
class Meta:
model = Sale
fields = ('sale_item','new_price')
在我看来,我可以保存Sale表格的数据(加载到模板中),但是我需要在模板中添加一个名为“当前价格”的新字段的实时更新(它不会保存在模型,只是看数据) . 它将加载ChoiceField中所选项目内的价格 .
例如:我从ChoiceField中选择“USB Reader”,模板中的当前字段将加载项目的价格 . 如果我移动到新项目,当前价格将在屏幕上更新 .
我需要Ajax或js来实现吗?我正在查看教程,但是他们从另一个选择域中的所选项目中选择加载 .
任何帮助将不胜感激 .