Django: nie można dołączyć pola ManyToManyField, ponieważ ręcznie określa model „przechodzący”
Sprawdziłem wiele razy i znalazłem tylko jedno rozwiązanie, aby dodać niestandardowy model pośredni dla dwóch modeli mających związek z trzecim modelem. Złożyłem wniosek jak zwykle, ale nadal otrzymałem ten problem:
nie może zawierać pola „terminy” ManyToManyField, ponieważ „terminy” ręcznie określają model „przechodzący”
models.pyclass Term(models.Model):
class Meta:
db_table = "tbl_term"
name = models.CharField(max_length=32)
class Post(models.Model):
class Meta:
db_table = "tbl_post"
title = models.CharField(max_length=96)
content = models.TextField()
terms = models.ManyToManyField("Term", through="TermRelation")
class TermRelation(models.Model):
class Meta:
db_table = "tbl_term_relation"
term = models.ForeignKey("Term", db_column="id_term")
post = models.ForeignKey("Post", db_column="id_post")
admin.py@admin.register(Term)
class AdminTerm(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['name']})
]
@admin.register(Post)
class AdminPost(admin.ModelAdmin):
fieldsets = [
(None, {'fields':['title', 'content', 'terms']})
]