您好我需要非常非常简单的例子。首先是我的模特:
#This my student models
from django.db import models
SEX_CHOICES= (
('M', 'Male'),
('F', 'Female'),
)
class Students(models.Model):
student_name = models.CharField(max_length=50)
student_sex = models.CharField(max_length=8, choices=SEX_CHOICES)
student_city = models.Charfield(max_length=50)
student_bio = models.TextField()
def __unicode__(self):
return self.student_name
O.K。让我们看看我的ClassRooms模型。
#This my ClassRooms models
from django.db import models
from myproject.students.models import *
class ClassRooms(models.Model):
class_number= models.CharField(max_length=50)
class_student_cities = models.ForeignKey(Students)
class_year = models.DateField()
def __unicode__(self):
return self.class_number
我如何在class_student_cities区域显示Students.student_city数据?我想那是关于django-admin区域的。当我使用class_student_cities = models.ForeignKey(Students)时,我只在该区域看到Students.student_name数据(例如:John Smith)。我想看JUST Students.student_cities数据(例如:NewYork)。 你能举个例子吗?
我应该使用类似的东西:
class_student_cities = models.ForeignKey(Students.student_cities)
非常感谢!
答案 0 :(得分:1)
尝试重新定义 unicode 方法。
def __unicode__(self):
return self.student_city
所以你会在学生城里看到。
好吧,我试图重新设置您的应用程序以使用表单类设置数据。在你的应用程序的admin.py中有这样的东西:
from django.contrib import admin
from django import forms
from myapp.models import *
class ClassRoomsAdminForm(forms.ModelForm):
class Meta:
model = ClassRoom
def __init__(self, *arg, **kwargs):
super(ClassRoomsAdminForm, self).__init__(*arg, **kwargs)
self.fields[' class_student_cities'].choices = [(csc.id,csc.student_city) for csc in Students.objects.all()
class ClassRoomsAdmin(admin.ModelAdmin):
form = ClassRoomsAdminForm
admin.site.register(ClassRooms,ClassRoomsAdmin)
也许你需要修理一些东西,但我希望它会起作用。您将 init 功能设置为表单,因此在管理面板中,您可以将所有选项设置为您在学生模型中保留的所有内容。 csc.id你需要使这个对象可迭代(城市不是唯一的),然后你可以选择从学生模型到现场设置的所有内容。