Я создаю веб-сайт для ввода цен на разные продукты. Места для различных продуктов (ресторан, супермаркет, аптека)
Пользователь может ввести несколько мест для продуктов.Продуктовое место (например, рестораны) может иметь много меню
Итак, у меня есть три модели: 1. Первая - это «ProductPlace», которая имеет в качестве ForeignKey модель пользователя веб-сайта («Пользователь»)
Вторым является «Продукт», который имеет в качестве иностранного ключа модель «ProductPlace» Третьим является «Меню» (как меню ресторана), в котором также в качестве иностранного ключа используется модель «ProductPlace»
Я создал наборы форм, связанные с этими тремя моделями, в файле "forms.py".Но я не знаю, как это сделать для "views.py"
#models.py
from django.db import models
from django.core.validators import FileExtensionValidator
from .validators import validate_file_extension
from django.contrib.auth import get_user_model
User = get_user_model()
# Create your models here.
class ProductPlace(models.Model):
name = models.CharField(max_length=50)
num_road = models.IntegerField(blank=False, null=False)
name_road = models.CharField(max_length=50)
postal_code = models.IntegerField(blank=False, null=False)
city = models.CharField(max_length=50)
country = models.CharField(max_length=50)
acquired_by = models.ForeignKey(User, related_name="product_places",
null=True, on_delete=models.SET_NULL)
def __str__(self):
return self.name
class Product(models.Model):
name = models.CharField(max_length=50)
price = models.IntegerField(blank=False, null=False)
place = models.ForeignKey(ProductPlace,related_name="products", on_delete=models.CASCADE)
class Meta:
ordering = ('name',)
def __str__(self):
return self.name
class Menu(models.Model):
name = models.CharField(max_length=50)
price = models.IntegerField(blank=False, null=False)
place = models.ForeignKey(ProductPlace, related_name="menus", on_delete=models.CASCADE)
class Meta:
ordering = ('name',)
def __str__(self):
return self.name
#forms.py
from django import forms
from .models import *
from django.forms.models import inlineformset_factory, modelformset_factory
from django.contrib.auth import get_user_model
User = get_user_model()
ProductPlaceFormSet = inlineformset_factory(
User, ProductPlace, fields=['name', 'num_road', 'name_road', 'postal_code', 'city', 'country'],
extra=1, can_delete=True
)
ProductFormSet = inlineformset_factory(
ProductPlace, Product, fields=['name', 'price'],
extra=1, can_delete=True
)
MenuFormSet = inlineformset_factory(
ProductPlace, Menu, fields=['name', 'price'],
extra=1, can_delete=True
)
Я хотел бы получить представление формы с кнопкой добавления и кнопкой удаления для места продукта, продукта и меню