如果我有这样的模型:
models.py
class SiteMeta(models.Model):
location_type = models.CharField(max_length=100)
location = models.OneToOneField(Location, related_name="site")
somewhereelse/models.py
class Location(models.Model):
name = models.CharField(max_length=100)
ward = models.CharField(max_length=100)
基于SiteMeta在一个ModelForm中保存名称,病房的最有效方法是什么?
答案 0 :(得分:0)
您可以将sitemeta作为模型位置
中的外键传递class Location(models.Model):
name = models.CharField(max_length=100)
ward = models.CharField(max_length=100)
sitemeta = models.ForeignKey(SiteMeta)
答案 1 :(得分:0)
我假设您已在name
的模型中添加了ward
和SiteMeta
字段。
在这种情况下,您可以为Location
定义模型表单,并使用它来创建位置对象或从Location
中的字段创建SiteMeta
对象。
然后保存SiteMeta
对象以及设置位置。
例如。
locationform = LocationForm(request.POST)
if location.is_valid():
location = locationform.save()
OR
#validate fields appropriately
location = Location.objects.create(name=request.POST.get('name'),
ward=request.POST.get('ward'),
sitemetaform = SiteMetaForm(request.POST)
if sitemetaform.is_valid():
sitemeta = sitemetaform.save(commit=False)
sitemeta.location = location
sitemeta.save()