Загрузить поле в HTML-шаблон с данными из выбранного ChoiceField - PullRequest
0 голосов
/ 09 декабря 2018

Я застреваю в следующей ситуации с загрузкой в ​​реальном времени поля в шаблоне модели продажи.

У меня есть две модели (Item и Sale), связанные с помощью 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.

Пример: я выбираю «USB Reader» из ChoiceField, и текущее поле в шаблоне будет загружаться вместе с ценой элемента.Если я перейду к новому предмету, текущая цена будет обновляться на экране.

Нужен ли мне Ajax или js для этого?Я смотрю учебные пособия, но они загружают поле выбора из выбранного элемента в другом поле выбора.

Любая помощь приветствуется.

...