使用所选ChoiceField中的数据在html模板中加载一个字段

时间:2018-12-09 00:09:05

标签: python django modelchoicefield

在下一种情况下,我陷入了实时在销售模型模板中加载字段的问题。

我有两个与ForeignKey相关的模型(项目和销售)。

销售模式

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

我为销售模型创建了一个表格

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')

在我看来,我可以保存“销售”表单的数据(已加载到模板中),但是我需要实时更新模板中添加的名为“当前价格”的新字段(不是保存在模型中,只是为了查看数据)。它将在ChoiceField中选择的项目内加载价格。

例如:我从ChoiceField中选择“ USB Reader”,模板中的Current Field将加载该物品的价格。如果我移动到新商品,当前价格将在屏幕上更新。

我是否需要Ajax或js来实现?我正在看教程,但是它们会从另一个选择域中的选定项目中加载选择域。

任何帮助将不胜感激。

0 个答案:

没有答案