Я не могу найти подходящее решение для того, что я считаю проблемой для начинающих. Любая помощь высоко ценится.
Сайт, который я создаю, будет использоваться для планирования вечеринок. Его будут использовать два типа людей: организаторы вечеринок и посетители вечеринок.
Организаторы вечеринок могут создавать вечеринки и выбирать предметы, которые будут предлагаться посетителям. Предметы - еда и напитки, 1 предмет = одна пицца или одно пиво.
Пользователи смогут подтвердить участие в вечеринке и выбрать, какую еду и напитки они хотели бы заказать и сколько.
Я уже создал аутентификацию и создание партии.
Теперь мои проблемы таковы:
- Как организатор может создать список предметов, которые будут предложены
Посетитель
- Как посетитель может выбрать и тип товара и количество?
Я пробовал использовать следующий код (обрезанный):
models.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()
forms.py
class VisitorRegisterForm(forms.ModelForm):
"""Form to register a visitor."""
class Meta:
model = PartyRegistration
fields = ['visitor', 'selected_items']
views.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.