Django - отображение и сохранение в простой форме - PullRequest
1 голос
/ 29 апреля 2020

Это очень ориентированный на новичка вопрос, но я застрял в этом вопросе весь день.

Я хотел бы загрузить данные для определенной c записи и иметь возможность ее сохранить ( Кнопка «Отправить» в шаблоне), но я все еще пытаюсь понять примеры и метод сохранения.

models.py

class model_essays(models.Model):
    user = models.ForeignKey(User, default='1', on_delete=models.CASCADE)
    title = models.CharField(max_length=100, default='')
    date_added = models.models.DateTimeField(auto_now_add=True)
    body = models.TextField()

    def __str__(self):
         return self.title

Я понимаю Идентификатор создается автоматически

forms.py

class frm_essays (forms.ModelForm):
    class Meta:
        model = model_essays
        fields = ['title', 'date_added', 'body']

urls.py

urlpatterns = [
       path('essay/<int:pk>', views.views_essay),
]

views.py {застрял здесь}

@login_required
def views_essay(request, pk):
    if request.method == 'POST':
        updatedForm = essay_detail(request.POST, instance=request.? {I want the ID of the essay})

    if u_form.is_valid():
        updatedForm.save()
        messages.success(request, f'this essay has been updated')
        return redirect('essay_detail')

    else:
        updatedForm = frm_essays(instance=request.{as above})

   context = {
       'updatedForm': updatedForm
}

   return render(request, 'essay_detail.html', context)

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

1 Ответ

1 голос
/ 29 апреля 2020

Если я не ошибаюсь, вы ищете тот же идентификатор, что и pk (первичный ключ). Вы передали это в качестве аргумента своей функции.

Вам просто нужно запросить экземпляр из БД.

def views_essay(request, pk):
    essay = model_essays.objects.get(pk=pk)
    if request.method == 'POST':
        updatedForm = essay_detail(request.POST, instance=essay)
    ...

Примечание: essay будет None, если запрос на основе pk не находит соответствия в БД.

...