В настоящее время я работаю над формой, которая отображает информацию о конкретном продукте на моем веб-сайте.Каждая цена представлена объектом Цена , и каждый Предмет имеет несколько объектов Цена , связанных с ним.Я создал ModelForm для отображения данных в моем Item , который работает.Однако, когда я пытаюсь отобразить поле ManyToMany в моей ModelForm, я получаю небольшую коробку, в которой перечислены все мои Price объекты.Мне нужно отобразить пользовательский HTML-код для объектов Price , чтобы они могли взаимодействовать с некоторым имеющимся у меня JavaScript.Ниже приведен код, который у меня есть:
class Item(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=200)
description = models.CharField(max_length=1000)
category = models.ForeignKey(Category)
prices = models.ManyToManyField(Price, blank=True)
images = models.ManyToManyField(Image)
runs = models.ManyToManyField(ActivityRun, blank=True)
date_added = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.name
class ItemForm(ModelForm):
class Meta:
model = Item
description = forms.CharField(widget=TinyMCE())
@login_required
def edit_item(request, item_id):
item = get_object_or_404(Item, pk=item_id)
if request.method == 'POST':
form = ItemForm(request.POST, request.FILES, instance=item)
if form.is_valid():
return HttpResponseRedirect("/items/")
else:
form = ItemForm(instance=item)
return render(request, 'edit_item.html', {'form': form})
И часть моего шаблона, которую я пытаюсь отобразить:
{% for price in form.prices %}
<span class="price_box" style="width: 200px;">
<a href="#" class="remove_price">x</a>{{ price.name }} ${{ price.price }}
<input type="hidden" name="price_name" value="{{ price.name }}">
<input type="hidden" name="price_cost" value="{{ price.price }}">
</span>
{% endfor %}
Я не совсем уверен, как это сделать,,.
В частности, как мне изменить HTML-код для отображения множества форм в моей форме?