Django:模型外键和选择框小部件
我有 2 个模型 Worker
和 Position
当我添加新工人时,应该有一个选择框,其中包含 Positions
模型中列出的位置。
我尝试使用 Select
小部件,但 django 失败并出现 no such property
异常。
模型
# Position model
class Position(models.Model):
p_name = models.CharField(max_length = 40, unique = True, verbose_name = 'Position')
p_salary = models.IntegerField(max_length = 11, verbose_name = 'Salary')
fields = ('p_name', 'p_salary')
# Worker model
class Worker(models.Model):
w_name = models.CharField(max_length = 40, verbose_name = 'Name')
w_lastname = models.CharField(max_length = 40, verbose_name = 'Lastname')
w_position = models.ForeignKey(to = Position, to_field = 'p_name', verbose_name = 'Position')
w_dept = models.ForeignKey(to = Department, to_field = 'd_name' verbose_name = 'Department')
表单
class WorkerForm(ModelForm):
class Meta:
model = Worker
widgets = {
'w_name' : TextInput(attrs = {'class': 'e name'}),
'w_lastame' : TextInput(attrs = {'class': 'e lastname'}),
'w_position': Select(attrs = {'class': 'e position'}),
'w_dept' : Select(attrs = {'class': 'e department'}),
}
admin.py 中的定义
class WorkerAdmin(admin.ModelAdmin):
form = WorkerForm
list_display = ('w_name', 'w_lastname', 'w_position', 'w_dept')
<代码>
如何根据外键显示选择框出了什么问题?
苏丹
I've 2 models Worker
and Position
when I add a new worker there should be selectbox with the positions listed in Positions
model.
I tried to use Select
widget but django fails with no such property
exception.
Models
# Position model
class Position(models.Model):
p_name = models.CharField(max_length = 40, unique = True, verbose_name = 'Position')
p_salary = models.IntegerField(max_length = 11, verbose_name = 'Salary')
fields = ('p_name', 'p_salary')
# Worker model
class Worker(models.Model):
w_name = models.CharField(max_length = 40, verbose_name = 'Name')
w_lastname = models.CharField(max_length = 40, verbose_name = 'Lastname')
w_position = models.ForeignKey(to = Position, to_field = 'p_name', verbose_name = 'Position')
w_dept = models.ForeignKey(to = Department, to_field = 'd_name' verbose_name = 'Department')
Form
class WorkerForm(ModelForm):
class Meta:
model = Worker
widgets = {
'w_name' : TextInput(attrs = {'class': 'e name'}),
'w_lastame' : TextInput(attrs = {'class': 'e lastname'}),
'w_position': Select(attrs = {'class': 'e position'}),
'w_dept' : Select(attrs = {'class': 'e department'}),
}
Definition in admin.py
class WorkerAdmin(admin.ModelAdmin):
form = WorkerForm
list_display = ('w_name', 'w_lastname', 'w_position', 'w_dept')
What goes wrong how to make select box appear according to a foreign key?
Sultan
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以尝试在表单内重新声明表单的字段(确保使用与模型中相同的名称)并在其中设置小部件和属性?
You could try just re-declaring the field for the form inside the form (making sure to use the same name as it is in the Model) and setting the widget and attrs in there?