对于我认为是初学者的问题,我想不出一个合适的解决办法。非常感谢您的帮助。你知道吗
我正在建立的网站将用于计划聚会。有两种人会使用它,派对组织者和派对访客。 聚会组织者可以创建一个聚会并选择要提供给访客的项目。项目是食物和饮料,1个项目=一个比萨饼或一杯啤酒。你知道吗
然后,用户可以确认参加聚会,并选择他们想要点的食物和饮料以及数量。 我已经创建了身份验证和创建了一个参与方。你知道吗
现在,我的问题是:
我尝试了以下代码(精简):
型号.py:
class ItemType(models.Model):
"""Create items (food and drinks)."""
name = models.CharField()
class Party(models.Model):
"""Create a party."""
organizer = models.ForeignKey(User)
party_name = models.CharField()
items_to_be_offered = models.ManyToManyField(ItemType)
class PartyRegistration(models.Model):
"""Register for a party / create party registration."""
party = models.ForeignKey(Party)
visitor = models.CharField()
selected_items = models.ManyToManyField()
class ItemSelection(models.Model):
"""Specify which items and number of items the visitor selected."""
party_registration = models.OneToOneField(PartyRegistration)
item_type = models.ManyToManyField(ItemType)
item_quantity = models.PositiveIntegerField()
表单.py
class VisitorRegisterForm(forms.ModelForm):
"""Form to register a visitor."""
class Meta:
model = PartyRegistration
fields = ['visitor', 'selected_items']
视图.py
def VisitorRegister(request, pk):
"""Register Visitor to a specific party."""
party = get_object_or_404(Party, pk=pk)
if request.method == 'POST':
form = VisitorRegisterForm(request.POST)
if form.is_valid():
name_clean = form.cleaned_data['visitor']
registration = PartyRegistration(party=party, visitor=name_clean)
registration.save()
return HttpResponseRedirect(reverse('index'))
else:
form = VisitorRegisterForm()
context = {'form': form, 'party': party}
return render(request, 'visitor-register.html', context)
网站是Django 2.0,PostgreSQL。你知道吗
在这种情况下,您需要与
through
模型建立多对多关系(order matters,或者更改order并引用PartyRegistration
):见https://docs.djangoproject.com/en/2.1/topics/db/models/#intermediary-manytomany
相关问题 更多 >
编程相关推荐