Редактирование значений двух таблиц из одного представления.Джанго - PullRequest
0 голосов
/ 22 февраля 2019

В родительской таблице у меня много объектов.У пользователя есть форма, в которой он может выбрать один из родительских объектов.Это выглядит так:

class ChildForm(forms.ModelForm):
    class Meta:
        model = OrderingMassage
        fields = ('parent',
                  'name')

Теперь я хотел бы получить для каждого объекта 'parent', выбранного пользователем в таблице Parent, значение 'on_off button' изменилось на False.Как я могу восстановить это?Что я могу использовать?Могу ли я сделать это в моем представлении, используя одну форму?

Например:

models.py

class Parent(models.Model):
    name = models.CharField(max_length=15)
    on_off_button = models.BooleanField(deflaut=True)

class Child(models.Model):
    parent = models.ForeignKey(Parent, on_delete=models.CASCADE)
    name = models.CharField(max_length=15)

views.py

if request.method == 'POST' and 'child_btn' in request.POST:
    child_form = ChildForm(request.POST)
    if child_form.is_valid():
        child = child_form.save(commit=False)
        name = child_form.cleaned_data['name']
        parent = child_form.cleaned_data['parent']
        # Can I add an element here that will change the value parent.id on False
        child.name = name
        child.parent = parent
        child.save()
else:
    child_form = ChildForm()

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 22 февраля 2019

По вашему мнению вы можете сделать что-то вроде:

if request.method == 'POST' and 'child_btn' in request.POST:
    child_form = ChildForm(request.POST)
    if child_form.is_valid():
        child = child_form.save(commit=False)
        name = child_form.cleaned_data['name']
        parent = child_form.cleaned_data['parent']

        child.name = name
        child.parent = parent
        child.save()

        #get the parent object related to the parent selected by the user
        parent = Parent.objects.get(id=parent.id)
        parent.on_off_button = False
        parent.save()

        #or can you try this method to check
        parent.on_off_button=False
        parent.save()

else:
    child_form = ChildForm()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...