редактировать форму Django с экземпляром всегда загружается с пустыми полями формы - PullRequest
0 голосов
/ 17 января 2019

models.py

class summary_model(models.Model):
    username = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT)
    summary=models.TextField(unique=False, blank=False, null=False)
    numberofprojects=models.CharField(max_length=264, unique=False, blank=False, null=False)
    numberofinternships=models.CharField(max_length=264, unique=False, blank=False, null=False)
    numberofjobs=models.CharField(max_length=264, unique=False, blank=False, null=False)
    def __str__(self):
        return str(self.username)

forms.py

class summary_form(forms.ModelForm):
    #fields from model
    class Meta:
        model = summary_model
        fields = ('summary','numberofprojects','numberofinternships','numberofjobs')

views.py

def summaryview(request):
    username=request.user
    if request.method == 'GET':
        summaryform=summary_form(request.GET or None,instance=summary_model.objects.get(username=username))
        print(summaryform)
    elif request.method == 'POST':
        form4=summary_form(request.POST or None,instance=summary_model.objects.get(username=username))
        if form4.is_valid():
            summary_obj = form4.save(commit=False)
            summary_obj.username = request.user
            summary_obj.save()
            return redirect('#anotherview')
        else:
            summaryform=summary_form(instance =summary_model.objects.get(username =username))
    return render(request,'app/summary.html',{'summaryform':summary_form,})

шаблон / summary.html

{% block content %}
<form action="" method="post" novalidate>
{% csrf_token %}
{{ summaryform.non_field_errors }}
<div class="row form-row bg-white has-shadow">
  <div class="col-12">
    <span class="labelspan">{{ summaryform.summary.label }}</span>
    {{ summaryform.summary.errors }}
    <span class="inputfieldspan">{{ summaryform.summary}}</span>
  </div>
  <div class="col-6">
    <span class="labelspan">{{ summaryform.numberofprojects.label }}</span>
    {{ summaryform.numberofprojects.errors }}
    <span class="inputfieldspan">{{ summaryform.numberofprojects}}</span>
  </div>
  <div class="col-6">
    <span class="labelspan">{{ summaryform.numberofinternships.label }}</span>
    {{ summaryform.numberofinternships.errors }}
    <span class="inputfieldspan">{{ summaryform.numberofinternships}}</span>
  </div>
  <div class="col-6">
    <span class="labelspan">{{ summaryform.numberofjobs.label }}</span>
    {{ summaryform.numberofjobs.errors }}
    <span class="inputfieldspan">{{ summaryform.numberofjobs}}</span>
  </div>
</div>
{{ summaryform.message.help_text }}
<button type="submit" class="btn3">Save and Continue</button></form>
{% endblock %}

Мне нужно принять данные в сводной форме и разрешить пользователю редактировать с использованием того же представления. Когда я сохраняю заполненные данные, их обновление, но главная проблема заключается в том, что данные в форме не заполняются из базы данных с использованием экземпляра.

1 Ответ

0 голосов
/ 17 января 2019

Try fields = ['summary', 'numberofprojects', 'numberofinternships', 'numberofjobs'] в forms.py

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