Как обновить различные объекты набора запросов с помощью ModelForm в Django - PullRequest
0 голосов
/ 25 июня 2019

У меня есть две модели следующим образом

class Professor(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    faculty_id = models.IntegerField(primary_key=True)
    name = models.CharField(blank=True, max_length=50)
    family_name = models.CharField(blank=True, max_length=50)
    birth_date = models.DateField(blank=True, null=True)
    national_id = models.IntegerField(blank=True, null=True)
    ....

И

class Journal(models.Model):
    professor = models.ForeignKey(Professor, on_delete=models.CASCADE)
    title = models.CharField(max_length=1000, null=True)
    title_english = models.CharField(max_length=1000, null=True)
    magazine_title = models.CharField(max_length=1000, null=True)
    magazine_title_english = models.CharField(max_length=1000, null=True)
...

У меня есть представление, в котором перечислены все журналы, принадлежащие профессору:

def journals_update(request):
    professor = get_object_or_404(Professor, 
    user__username=request.user)
    context = {"active_tab": "3-1", "active": "made-3",
    "journals": Journal.objects.filter(professor=professor)}
    return render(request, 'journals.html',
              context=context)

Я хочу иметь возможность изменять поля, связанные с различными объектами, отображаемыми в journals.html, и сохранять поля, которые изменяются при публикации пользователем.

Я пробовал что-то вроде следующего:

def post(self, request):
    queryset = self.get_queryset()
    form = JournalModelForm(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        print(data)
        queryset.update(**data)

Но я понял, что queryset.update () обновляет поля с тем же значением. Как я могу пойти по этому поводу? Я бы очень предпочел это с общими взглядами.

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