Как я могу организовать структуру ввода таблиц городов/ресторанов в базе данных Django?

Добрый день! У меня есть план структуры базы данных.

Пример приведен на рисунке ниже.

Например, у меня есть - все кофейни - в пределах одного региона - штата или нескольких регионов.

В одном городе есть несколько кафе. Всего может быть 200 кафе в 10 городах.

Проблема заключается в том, как ввести данные о кафе в таблицы базы данных.

А также при необходимости измените их. Введите данные через формы.

У каждого кафе также есть следующие параметры - адрес, интернет-страница, прибыльность, доходность, количество сотрудников, т.е. данные, относящиеся к одному кафе. А также персонал и меню.

Я думаю, сначала ввести города, в которых будут кафе. А затем ввести названия кафе.

И даже позже другие параметры через другие формы.

Как я могу сделать так, чтобы на втором этапе вводилось только имя, адрес, а затем последовательно заполнялись другие данные?

Как я могу организовать структуру ввода таблиц городов / ресторанов в базе данных Django?

from django.db import models

# Create your models here.

class CityCafe (models.Model):
    city = models.CharField(verbose_name="City")


class ObjectCafe (models.Model):
    name = models.TextField(verbose_name="Cafe Name")
    name_city = models.ForeignKey(CityCafe)


class BaseParametrCafe (models.Model):
   # type_object = models.Choices 
   # type_working = models.Choices
    value_budget = models.FloatField

    name_object = models.OneToOneField(ObjectCafe, null=False, on_delete=models.CASCADE) 


from django import forms
from models import *


class FormCites (forms.ModelForm):

    class Meta:
        model = CityCafe
        fields = "__all__"


class FormObjects (forms.ModelForm):

    class Meta:
        model = ObjectCafe
        fields = "__all__"


class FormObjectsParametr (forms.ModelForm):

    class Meta:
        model = BaseParametrCafe
        fields = "__all__"



from django.shortcuts import render

from models import *

from forms import *


def form_cites_view (request):
    form = FormCites(request POST or None)
    if form.is_valid():
        post = form.save()
        post.save()
    return render(request, "form_1.html", {"form": form})

# Create your views here.

введите описание изображения здесь

введите описание изображения здесь

Вы захотите использовать OneToOneFields для связи, чтобы гарантировать, что в вашей таблице есть не более одной из строк каждой другой таблицы:

https://docs.djangoproject.com/en/5.1/topics/db/examples/one_to_one/#one-to-one-relationships

Чтобы сделать все это с помощью форм, вам нужно будет ознакомиться с типовыми наборами форм.

Вернуться на верх