私は3つのテーブルを持っていますが、1つはmandal、village、Propertyです。プロパティテーブルにはマンダールと村が外部キーでリンクされています。マンダール、その特定の村の結果のみがdjango管理者のプロパティのフォームで表示する必要があります。私はマンダールと村を結びつけました。外部キーの情報を取得する方法
#models.py
from django.db import models
from django.utils import timezone
class Mandal(models.Model):
id = models.AutoField(
primary_key=True,
db_column="Mandal_id",
verbose_name="Mandal Id",
)
name = models.CharField(
max_length=200,
db_column="Mandal_Name",
verbose_name="Mandal Name",
null=False,
blank=False,
help_text="Enter Mandal names only",
default=None,
)
class Meta:
db_table = "Mandal"
verbose_name_plural = "Mandal"
def __str__(self):
return self.name
class Village(models.Model):
id = models.AutoField(
primary_key=True,
db_column="Village_id",
verbose_name="Village Id",
)
name = models.CharField(
max_length=200,
db_column="Village_Name",
verbose_name="Village Name",
null=False,
blank=False,
help_text="Enter village names only",
default=None,
)
mandal_id = models.ForeignKey(
Mandal,
db_column="Mandal_id",
verbose_name="Mandal Name",
)
class Meta:
db_table = "Village"
verbose_name_plural="Village"
def __str__(self):
return self.name
class Properties(models.Model):
id = models.BigAutoField(
primary_key=True,
db_column="Property_id",
verbose_name="Property Id"
)
created_on = models.DateField(
auto_now=False,
auto_now_add=False,
default=timezone.now(),
)
area = models.BigIntegerField(
default=0,
db_column="Property_Area",
verbose_name="Property Area",
help_text="Please enter area in square feet",
validators=[],
)
mandal_location = models.ForeignKey(
Mandal,
db_column="Mandal_id",
verbose_name="Mandal Name",
default=None,
)
village_location = models.ForeignKey(
Village,
db_column="Village_id",
verbose_name="Village Name",
default=None,
)
description = models.TextField(
default=None,
db_column="Property_description",
verbose_name="Property Description",
)
features = models.CharField(
default=None,
db_column="Property_Features",
verbose_name="Property Features",
null=True,
blank=True,
help_text="Add Property Fetures",
max_length=1000,
)
additional_features = models.CharField(
default=None,
db_column="Property_Additional_Features",
verbose_name="Additional Features",
null=True,
blank=True,
help_text="Add Property Fetures",
max_length=1000
)
class Meta:
db_table = "Properties"
verbose_name_plural = "Property"
def __str__(self):
return "Pr-{i}".format(i=self.id)
#admin.py
from django.contrib import admin
from whiteindia.models import Mandal,Village,Properties
class MandalAdmin(admin.ModelAdmin):
list_display = ['id','name']
class Meta:
model = Mandal
class VillageAdmin(admin.ModelAdmin):
list_display = ['id','name','mandal_id']
list_filter = ['mandal_id']
class Meta:
model = Village
class PropertiesAdmin(admin.ModelAdmin):
list_display = ['id', 'area','village_location','mandal_location']
class Meta:
model = Properties
admin.site.register(Mandal,MandalAdmin)
admin.site.register(Village,VillageAdmin)
admin.site.register(Properties,PropertiesAdmin)
、どのように我々は、ブラウザウィンドウで管理者/プロパティを入力すると、管理者でプロパティ内の特定のマーンダルに
- プロパティ、私はマーンダル選択した場合、私は特定のマーンダルに関連付けられた村のリストを取得する必要があります。 –
あなたのプロパティリストは、外部キーを介して義務的な場所を示しています。このキーをクリックして別の村のリストを表示する場合は、レコードの主キーを取得して別のビューに渡す必要があります。これには、管理クラスのいくつかを上書きまたはサブクラス化する必要があります。これを行うには、管理セクションのカスタマイズに関するドキュメントをチェックアウトする必要があります。別の方法として、インラインでプロパティのmadalsのリストを表示することができ、おそらくマンダールの村のリストを 'through'オプションを使って表示することができます。あなたのアプリをどのように見せるかによって異なります。 – cander