0
我對django很陌生。在爲我正在編寫的應用程序編寫模型時,由於我用於單個模型的所有外鍵(我的票模型是特定的),我覺得自己做錯了一些事情。模型中的許多外鍵,更好的模型做法?
我在開始時的想法是我希望每張門票都能保存其創建者的信息,該門票分配的隊伍以及門票上的註釋。和其他不需要外鍵的信息。我做對了嗎?我不知道爲什麼,但我覺得有更好的方法。
class Team(models.Model):
name = models.CharField(max_length=200)
description = models.CharField(max_length=2000)
members = models.ManyToManyField(User, through='Team_members')
def __str__(self):
return self.name
class Ticket(models.Model):
name = models.CharField(max_length=200)
creator = models.ForeignKey(User, on_delete=models.CASCADE)
team = models.ForeignKey(Team, on_delete=models.CASCADE)
comments = models.ForeignKey(Comment, on_delete=models.CASCADE)
#worker = models.ForeignKey(User, on_delete=models.CASCADE) *to be finished
description = models.CharField(max_length=500)
status = models.BooleanField(default=False)
date_opened = models.DateTimeField('date opened')
date_closed = models.DateTimeField('date closed',null=True, blank=True)
def __str__(self):
return self.name
class Team_member:
team = models.ForeignKey(Team)
user = models.ForeignKey(User)
date = models.DateTimeField('date joined')
class Comment:
text = models.CharField(max_length=2000)
user = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.text
而且,只是一個提示,[auto_now_add](https://docs.djangoproject.com/en/1.11/ref/models/字段/#django.db.models.DateField)可以幫助你在'Ticket'的'Team_member'和'date_opened'上使用'DateField' /'DateTimeField'。 – Art
只是一個Django提示:查看GenericRelations是否會幫助你的系統。您可以使用GR替換「Ticket.comments」FK。 https://simpleisbetterthancomplex.com/tutorial/2016/10/13/how-to-use-generic-relations.html – White