[英]Django mptt, can I delete the default 'name' filed?
我正在關注 django-mptt 教程,並且有一個“名稱”歸檔:
class Genre(MPTTModel):
name = models.CharField(max_length=50, unique=True)
parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')
class MPTTMeta:
order_insertion_by = ['name']
與我自己的 model 相比:
class Comment(MPTTModel):
"""
評論表
"""
name = models.CharField(max_length=1500, unique=True,)
nid = models.AutoField(primary_key=True)
news = models.ForeignKey(verbose_name='評論文章', to='News',to_field='id',on_delete=models.CASCADE)
user = models.ForeignKey(verbose_name='評論者', to='User',to_field='id',on_delete=models.CASCADE)
content = models.CharField(verbose_name='評論內容', max_length=255)
create_time = models.DateTimeField(verbose_name='創建時間', auto_now_add=True)
parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')
class MPTTMeta:
order_insertion_by = ['name']
這個“名稱”文件真的讓我很困擾,因為每次我都需要添加這個文件。
我的問題是我可以隱藏或忽略這個文件嗎?
刪除 name 字段時出現錯誤的原因是order_insertion_by
選項 [readthedocs.io]引用了該字段。 但是你可以讓它引用另一個字段。 正如文檔所說:
order_insertion_by
字段名稱列表,當插入新的樹節點或重新設置現有節點時,應定義排序,最重要的排序字段名稱在前。 默認為
[]
。假定任何標識為定義排序的字段在數據庫中永遠不會是 NULL。
因此,您可以例如改用主鍵:
class Genre(MPTTModel):
parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')
class MPTTMeta:
order_insertion_by = ['pk']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.