如何在Django models.py?

时间:2017-12-12 11:51:00

标签: python django django-models

我是Django世界的新手,我想从models.py链接两个类,以便我可以将它们的变量设置为彼此相等。这是models.py代码:

from django.db import models
from django.core.urlresolvers import reverse
# Create your models here.


class file(models.Model):
    title = models.CharField(max_length=250)
    FILE_TYPE_CHOICES = (
        ('audio','Audio'),
        ('games','Games'),
        ('videos','Videos'),
        ('applications','Applications'),
        ('books','Books/Docs'),
        ('others','Others')
        )
    file_type = models.CharField(max_length=10,choices=FILE_TYPE_CHOICES,default='others')
    description = models.TextField(max_length=6000)
    #uploader_username = ???

    def get_absolute_url(self):
        return reverse('one:user')

    def __str__(self):
        return self.title

class user (models.Model):
    username= models.CharField(max_length=100)
    email=models.EmailField
    password= models.CharField(max_length = 100)
    user_files = models.ForeignKey(file, on_delete=models.CASCADE)

在此,我想将uploader_username等级中的file设置为username等级中的user

1 个答案:

答案 0 :(得分:2)

不,你不想这样做。你想要一个从文件到用户的ForeignKey,而不是相反,那么你只需要访问my_file.user.username

注意,定义这样的用户类是个坏主意。这样做有充分的理由,但如果是这样,你必须从auth应用程序中的抽象基类继承;如果不这样做是严重的安全问题,因为您将以明文形式存储密码。这看起来不像你需要你自己的模型;你应该删除这个课程。