【问题标题】:Custom django form that has fields populated from database具有从数据库填充的字段的自定义 django 表单
【发布时间】:2014-08-26 04:13:34
【问题描述】:

我是 Django 新手。我有一个自定义表单,它使用 forms.Modelform 从我的模型创建自定义表单。我的数据库中已经有一些数据,我手动输入这些数据进行测试。

但是,用户和课程字段显示为下拉菜单。但他们在下拉列表中没有任何数据。如何让 django 从数据库中提取数据并将信息显示到表单的每个下拉列表中?

models.py:

class Student(models.Model):
    user = models.OneToOneField(User)
    course = models.ForeignKey(Course)

view.py:

def home(request):
    if request.method == 'GET':
        form = StudentForm()
    else:
        form = StudentForm(request.POST)
        if form.is_valid():
            pass
return render(request, "request.html", {'form': form}, context_instance=RequestContext(request))

forms.py:

class StudentForm(forms.ModelForm):
    class Meta:
        model = Student

更新

实际上发现更改没有保存到我的数据库中。他们现在正在加载到表单中。但是在下拉列表中,它显示为“学生对象”和“课程对象”

我怎样才能让他们以正确的名字出现?

【问题讨论】:

  • 数据库中有UserCourse 对象吗?
  • 实际上我意识到更改没有保存。我的下拉列表现在可以看到数据库中的对象。但是,它们显示为“学生对象”和“课程对象”而不是名称。
  • 为这些对象定义 __unicode__ 方法。

标签: python django


【解决方案1】:

如果这是测试,我建议您不要这样做,而是遵循 django 教程中概述的测试指南,即它为您创建一个假数据库,然后您创建 UsersCourses通过Users.objects.create(username=...)

【讨论】:

    猜你喜欢
    • 2022-11-11
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多