1

我想把用户的电子邮件放在我的模型文章中。

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)
4

1 回答 1

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.usernameArticle方法内)为您提供名称和Article.user.email电子邮件。

一些解释

在 Django 中,您ForeignKey只能在模型对象上创建,而不能在对象字段上创建。这将在 SQL 中转换为表之间的经典引用。(如果你检查你的文章 SQL 数据库,你会看到一个字段。这个字段将包含用户的 ID,从创建文章user_id的表中提取。auth_user

于 2013-08-06T12:25:32.310 回答