【发布时间】:2018-07-14 03:22:25
【问题描述】:
这可能很容易解决。我创建了一个使用 forms.ModelForm 的表单。 我的模型有 ForeignKey 字段。表单为foreignKey创建了一个选择字段,但没有正确显示值。
models.py
from django.db import models
# Create your models here.
class Gender(models.Model):
name = models.CharField(max_length=8, null=True)
class Meta:
db_table='gender'
class UserExample(models.Model):
name = models.CharField(max_length=16,null=True)
age = models.IntegerField(blank=True, null=True)
gender = models.ForeignKey('Gender', on_delete=models.SET_NULL, null=True)
class Meta:
db_table='userExample'
def __str__(self):
return ""
forms.py
from django import forms
from .models import UserExample, Gender
class UserForm(forms.ModelForm):
class Meta:
model = UserExample
fields = ('name', 'age', 'gender')
views.py
from django.shortcuts import render
from .forms import UserForm
# Create your views here.
def index(request):
form = UserForm
return render(
request,
'index.html',
{'form': form}
)
urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
index.html
<html>
<head>
<title>test </title>
</head>
<body>
<form action="formreturn/" method="post">
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
</body>
</html>
在我启动我的应用程序之后。在选择框中,我只选择了性别对象,但没有选择性别名称。
可选我曾经像这样使用 sqllite3 添加值:
sqlite> 插入性别值(1,"Male");
sqlite> 插入性别值(2,“女性”);
【问题讨论】:
-
定义
__str__在Gender类中返回self.name
标签: python django forms foreign-keys