我正在使用Django 1.7,而且我是第一次利用这种关系。首先,我想确保正确配置;在ManyToManyField高级关系建模的Django tutorial中,有从Group到Person的引用,而不是其他方式,所以我假设从Organization到Person的单向关系就足够了。
这是我的问题:
添加新组织时,我希望能够创建一个新人并同时从同一屏幕输入他们的属性;目前我只能从现有的Person对象中进行选择。
这怎么可能?
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=256)
last_name = models.CharField(max_length=256)
email = models.EmailField(null=True, blank=True)
class Organization(models.Model):
root_domain = models.CharField(max_length=256)
name = models.CharField(max_length=256)
current_employees = models.ManyToManyField(
Person,
through='Employment',
related_name='employees'
)
class Employment(models.Model):
person = models.ForeignKey(Person)
organization = models.ForeignKey(Organization)
date_start = models.DateField(auto_now_add=True)
date_end = models.DateField(auto_now_add=True)
from django.contrib import admin
from .models import Organization, Person
class EmployeeInline(admin.TabularInline):
model = Organization.current_employees.through
extra = 1
class OrganizationAdmin(admin.ModelAdmin):
search_fields = (
'name',
'investors',
'description',
'root_domain',
)
list_filter = (
'updated',
'entity_type',
'hq_state',
'hq_country',
)
inlines = [EmployeeInline]
答案 0 :(得分:0)
也许您应该在就业模式中添加相关名称?
class Employment(models.Model):
person = models.ForeignKey(Person, related_name="Rperson")
organization = models.ForeignKey(Organization, related_name="Rorg")