我是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
。
答案 0 :(得分:2)
不,你不想这样做。你想要一个从文件到用户的ForeignKey,而不是相反,那么你只需要访问my_file.user.username
。
注意,定义这样的用户类是个坏主意。这样做有充分的理由,但如果是这样,你必须从auth应用程序中的抽象基类继承;如果不这样做是严重的安全问题,因为您将以明文形式存储密码。这看起来不像你需要你自己的模型;你应该删除这个课程。