我想将用户的电子邮件放在我的模型文章中。
from django.db import models
from django import forms
from django.contrib.auth.models import User
class Article(models.Model):
#auteur
email = models.ForeignKey(User.email, unique=True)
name = models.CharField(max_length=200)
#titre
title = models.CharField(max_length=200)
title_en = models.CharField(max_length=200)
subtitle = models.CharField(max_length=200)
subtitle_en = models.CharField(max_length=200)
答案 0 :(得分:2)
你所写的内容毫无意义。您必须在用户上保留ForeignKey,然后通过user.email
:
class Article(models.Model):
#auteur
user = models.ForeignKey(User, unique=True)
#titre
title = models.CharField(max_length=200)
title_en = models.CharField(max_length=200)
subtitle = models.CharField(max_length=200)
subtitle_en = models.CharField(max_length=200)
然后,Article.user.username
(或self.user.username
方法中的Article
)会为您提供名称并Article.user.email
发送电子邮件。
在Django中,您只能在Model对象上创建ForeignKey
,而不能在对象字段中创建user_id
。这将在SQL中转换为表之间的经典引用。 (如果您检查文章SQL数据库,您将看到auth_user
字段。此字段将包含用户的ID,从创建文章的{{1}}表中提取。