【问题标题】:Cant save forms to models django无法将表单保存到模型 django
【发布时间】:2020-02-29 11:20:38
【问题描述】:

我无法将我的表单保存到我的数据库中的模型中,代码工作顺利,没有错误,但是如果我签入 django admin,它不会保存到我的数据库模型中,你能帮我吗 这是我的代码:

forms.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)

敬畏.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>

无法将表单保存到 django 模型

【问题讨论】:

    标签: python django forms django-models


    【解决方案1】:

    values_list 在用作可迭代对象时返回元组列表,而不是模型实例。 所以使用 .all() 方法而不是 values_list()

     username = forms.ModelChoiceField(queryset=Instagram.objects.all())
    

    【讨论】:

    • 如果我使用 objects.all 我有 2 个我想要获取的值列表是“username”和“nama_depan”我只得到这个“def __str__(self): return self.username”下拉菜单将显示用户名而不是“nama_depan”
    猜你喜欢
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多