我很难理解Django中的ORM。 我有3个模型,其中2个首先用作FK。 我想创建允许我添加相关数据的按钮/表单。
我的 models.py
*imports*
class PersonManager(models.Manager):
def get_by_natural_key(self,name,surname):
return self.get(name=name,surname=surname)
class Person(models.Model):
name = models.CharField(attributes)
surname = models.CharField(attributes)
objects = PersonManager()
class Phone(models.Model):
person = models.ForeignKey(Person.editable=False,on_delete=models.CASCADE)
phone = model.CharField(attributes)
class Email(models.Model):
person = models.ForeignKey(Person,editable=False,on_delete=models.CASCADE)
email - models.EmailField()
我有一个用于将人员添加到数据库的表格,现在我想在每个对象人员附近添加按钮,这将允许我填写电话和电子邮件,但是老实说,我不知道我可以以哪种方式进行连接他们在一起
编辑:
更加专一:
我的 views.py
*imports*
class PersonListView(ListView):
model = Person
template_name = 'app/home.html'
context_object_name = 'users' //(in my home method it returns person from db)
现在,靠近我要添加的每个对象按钮,这将允许我填写电子邮件
我的 home.html :
{% extends "app/base.html" %}
{% block content %}
{% for user in users %}
id {{ user.id }} name: {{ user.name}} surname: {{ user.surname}}
{% endfor %}
{% endblock content %}
答案 0 :(得分:0)
我认为您可以使用相关名称来获取这样的关系字段:
class Email(models.Model):
person= models.OneToOneField(User,on_delete=models.CASCADE,related_name="E_person")
email - models.EmailField()
首先要在视图中保存此字段时,您可以通过人员类创建对象,如下所示:
obj = person.objects.create(name="mrX",surname="mrXIII")
并保存电子邮件:
obj.E_person.email = "mrX@gmail.com"
obj.save()
我可以为您提供帮助。