在一个视图中有两个带有外键的Django模型
我从Django开始。我有3个模型,一个父类“Cliente”,两个子类“Persona”和“Empresa”。 models.py在一个视图中有两个带有外键的Django模型,django,django-models,Django,Django Models,我从Django开始。我有3个模型,一个父类“Cliente”,两个子类“Persona”和“Empresa”。 models.py class Cliente(models.Model): idcliente = models.AutoField(unique=True, primary_key=True) direccion = models.CharField(max_length=45L, blank=True) telefono = models.CharFie
class Cliente(models.Model):
idcliente = models.AutoField(unique=True, primary_key=True)
direccion = models.CharField(max_length=45L, blank=True)
telefono = models.CharField(max_length=45L, blank=True)
email = models.CharField(max_length=45L, blank=True)
def __unicode__(self):
return u'Id: %s' % (self.idcliente)
class Meta:
db_table = 'cliente'
class Empresa(models.Model):
idcliente = models.ForeignKey('Cliente', db_column='idcliente', primary_key=True)
cuit = models.CharField(max_length=45L)
nombre = models.CharField(max_length=60L)
numero_ingresos_brutos = models.CharField(max_length=45L, blank=True)
razon_social = models.CharField(max_length=45L, blank=True)
def __unicode__(self):
return u'CUIT: %s - Nombre: %s' % (self.cuit, self.nombre)
class Meta:
db_table = 'empresa'
class Persona(models.Model):
idcliente = models.ForeignKey('Cliente', db_column='idcliente', primary_key=True)
representante_de = models.ForeignKey('Empresa', null=True, db_column='representante_de', blank=True, related_name='representa_a')
nombre = models.CharField(max_length=45L)
apellido = models.CharField(max_length=45L)
def __unicode__(self):
return u'Id: %s - Nombre completo: %s %s' % (self.idcliente, self.nombre, self.apellido)
class Meta:
db_table = 'persona'
我想在同一视图中管理类及其父类。我想以相同的形式添加、编辑和删除“客户”和“角色”/“客户”。你能帮我吗?文档中有一个很好的例子 我是根据文档编写的,因此未经测试
def manage_books(request, client_id):
client = Cliente.objects.get(pk=client_id)
EmpresaInlineFormSet = inlineformset_factory(Cliente, Empresa)
if request.method == "POST":
formset = EmpresaInlineFormSet(request.POST, request.FILES, instance=author)
if formset.is_valid():
formset.save()
# Do something. Should generally end with a redirect. For example:
return HttpResponseRedirect(client.get_absolute_url())
else:
formset = EmpresaInlineFormSet(instance=client)
return render_to_response("manage_empresa.html", {
"formset": formset,
})
文档中有一个很好的例子 我是根据文档编写的,因此未经测试
def manage_books(request, client_id):
client = Cliente.objects.get(pk=client_id)
EmpresaInlineFormSet = inlineformset_factory(Cliente, Empresa)
if request.method == "POST":
formset = EmpresaInlineFormSet(request.POST, request.FILES, instance=author)
if formset.is_valid():
formset.save()
# Do something. Should generally end with a redirect. For example:
return HttpResponseRedirect(client.get_absolute_url())
else:
formset = EmpresaInlineFormSet(instance=client)
return render_to_response("manage_empresa.html", {
"formset": formset,
})
嗨,欢迎来到Stackoverflow!这个问答站点的主要语言是英语,请问你有可能翻译你的问题吗?当你有<代码>外键 > <代码> PrimaIyKEY=Trase,请考虑<代码> OnEndoField。将外键更改为OntoOne字段解决它。谢谢!嗨,欢迎来到Stackoverflow!这个问答站点的主要语言是英语,请问你有可能翻译你的问题吗?当你有<代码>外键 > <代码> PrimaIyKEY=Trase,请考虑<代码> OnEndoField。将外键更改为OntoOne字段解决它。谢谢!