Django загрузить две одинаковые записи структуры в базу данных с помощью ОДНОЙ кнопки отправки. DJANGO - PullRequest
0 голосов
/ 18 июня 2020

Я испробовал все способы сохранить в базе данных две одинаковые структурные записи, предъявив иск django. Не знаю почему, но всегда сохраняется только последняя запись. Я создаю сеть для рецептов. И теперь я пытаюсь одной кнопкой сохранить все меню одного дня, что на завтрак, что на ужин .... И я не могу представить, как заставить меня работать. Справка

[мой пользовательский интерфейс] [1]

tripdishes_form. html

{% if form.instance.id %}
        {% endif %}
        <form class="form" action="
                {% if form.instance.id %}
                    {% url 'dishes:update' form.instance.id %}
                {% endif %}"
                method="post" enctype="multipart/form-data">
            {% csrf_token %}
            <div class="row">
                <div class="col-3">



                   <input type="hidden"  name="date" value="{{ trip_date }}"><br><br>
                   <input type="hidden"  name="trip_id" value="{{ trip_pk }}"><br><br>
                </div>
            </div>


            <div class="row">
                <div class="col-3">
                  {{ form1.dish_id|as_crispy_field }}
                </div>
                <div class="col-3">
                  {{ form1.meal_time_type|as_crispy_field }}
                </div>

            </div>




              <div class="row">
                <div class="col-3">
                  {{ form2.dish_id|as_crispy_field }}
                </div>
                <div class="col-3">
                  {{ form2.meal_time_type|as_crispy_field }}
                </div>


              </div>



              </div>




            <br>
            <button class="button" type="submit">
              {% if form.instance.id %}
                Update
              {% else %}
                Create
              {% endif %}
        </button>

    </form> 
<div>
    {% endblock  %}

forms.py

from django import forms
from .models import TripDishes

class TripDishForm(forms.ModelForm):

    class Meta:
        model=TripDishes
        fields=['trip_id','dish_id','date','meal_time_type',]
        widgets = {

        }

views.py

class TripDishesCreateView(LoginRequiredMixin, CreateView):
    model = TripDishes
    fields = ['date', 'meal_time_type', 'trip_id', 'dish_id']
    labels = {
            'date': 'Data',
            'meal_time_type': 'Dienos metas',
        } 
    success_url = reverse_lazy('dishes:dishlist')
    def get_context_data(self, *args, **kwargs):
        context = super().get_context_data(**kwargs)
        context['dishlist'] = Dish.objects.all()
        a = self.kwargs.get("pk")
        context['yra'] = self.kwargs.get("pk")
        context['trip_title'] = Trip.objects.filter(pk=a).values_list('title')[0][0]
        context['trip_pk'] = Trip.objects.filter(pk=a).values_list('pk')[0][0]
        context['trip_date'] = Trip.objects.filter(pk=a).values_list('start_date')[0][0]
        return context

    def get(self,request,*args,**kwargs):
        if request.method == 'POST':
            form_1 = TripDishForm(request.POST, prefix="form-1")
            form_2 = TripDishForm(request.POST, prefix="form-2")

            if form1.is_valid() and form2.is_valid():        
                form1.process()
                save1 = form1.save(commit=True)
                save1.save()    

                form2.process()
                save2 = form2.save(commit=True)
                save2.save()
        else:
            form_1 = TripDishForm()
            form_2 = TripDishForm()
        context = {
            'form1': form_1,
            'form2': form_2
    }
        return render(request, 'dishes/tripdishes_form.html', context)

Я не знаю, нужно ли мне использовать forms.py, но я пробовал очень много способов сделать это. ..

  [1]: https://i.stack.imgur.com/OoEew.png
...