私はかなり標準的な django サイトだと思うものに取り組んでいますが、管理セクションに適切なフィールドを表示するのに問題があります。
これが私のmodels.pyです:
class Tech(models.Model):
name = models.CharField(max_length = 30)
class Project(models.Model):
title = models.CharField(max_length = 50)
techs = models.ManyToManyField(Tech)
つまり、プロジェクトは異なる Tech オブジェクトを持つことができ、異なる技術オブジェクトは異なるプロジェクトに属することができます (プロジェクト X は Python と Django で作成され、プロジェクト Y は C# と SQL Server で作成されました)。
ただし、管理サイトには Tech オブジェクトの UI は表示されません。ここに私のadmin.pyがあります:
class TechInline(admin.TabularInline):
model = Tech
extra = 5
class ProjectAdmin(admin.ModelAdmin):
fields = ['title']
inlines = []
list_display = ('title')
admin.site.register(Project, ProjectAdmin)
TechInline
クラスをinlines
リストに追加しようとしましたが、それにより
<class 'home.projects.models.Tech'> has no ForeignKey to <class 'home.projects.models.Project'>
エラー。またtechs
、fields
リストに追加しようとしましたが、それは
そのようなテーブルはありません: projects_project_techs
エラー。確認しましたが、projects_project_techs
テーブルはありませんが、テーブルはありますprojects_tech
。私のsyncdbで何かが台無しになったのでしょうか?
それが役立つ場合、私はデータベースとして Sqlite を使用しています。