Не могу сохранить формы для моделей Django - PullRequest
0 голосов
/ 04 ноября 2019

Я не могу сохранить свои формы в модели в моей базе данных, код работает без ошибок, но если я проверю в django admin, что он не сохранен в моей модели базы данных, вы можете мне помочь, вот мой код:

формы. py

class InstagramUsernameForm(forms.ModelForm):

   class Meta:
       model = InstagramUsername
       fields = ('nama_orang','username','nama_depan')

   nama_orang = forms.CharField(max_length=20)
   username = forms.ModelChoiceField(queryset=Instagram.objects.values_list("username", flat=True))
   nama_depan = forms.ModelChoiceField(queryset=Instagram.objects.values_list("nama_depan", flat=True))

models.py

from django.db import models

# Create your models here.
class Instagram(models.Model):
    nama_depan      =  models.CharField(max_length=100,blank=True,null=True)
    nama_belakang   =  models.CharField(max_length=100)
    username        =  models.CharField(max_length=100)

    def __str__(self):
        return self.username

class InstagramUsername(models.Model):
    nama_orang = models.CharField(max_length=20)
    username = models.CharField(max_length=20)
    nama_depan = models.CharField(max_length=100,default='')

    def __str__(self):
        return self.nama_orang

views.py

def create2(request):
    akun_form = InstagramUsernameForm(request.POST or None)

    if request.method == 'POST':
        if akun_form.is_valid():
            akun_form.save()
        return redirect('sosmed:awe')
    else:
        print(akun_form.errors)
    context = {
        "akun_form":akun_form,
    }

    return render(request,"sosmed/awe.html",context)

awe.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>awe</title>
</head>
<body>
<form method="post">
    {% csrf_token %}
<h1>awe</h1>
<table>
{{ akun_form.as_table }}
</table>
    <button type="submit">Create</button>
</form>
</body>
</html>

не может сохранить формы вДжанго модели

1 Ответ

1 голос
/ 04 ноября 2019

values_list возвращает список кортежей, а не экземпляров модели, когда используется как итеративный. поэтому используйте метод .all () вместо values_list ()

 username = forms.ModelChoiceField(queryset=Instagram.objects.all())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...