Votre problème est probablement plus facile à résoudre si vous maintenez une relation un-à-un entre le bâtiment et l'emplacement. Par exemple, en sous-classant le bâtiment de l'emplacement ou en intégrant les champs de localisation dans les bâtiments. Je suppose que peu de bâtiments partagent le même emplacement. Donc, vous n'économiserez pas beaucoup en utilisant une clé étrangère à des emplacements de toute façon. Cette clé étrangère rend également l'édition compliquée. En particulier, si vous souhaitez des champs d'entrée distincts pour les composants d'emplacement. Normalement, vous devez d'abord rechercher des correspondances dans des emplacements existants avant de créer une nouvelle entrée de lieu. L'exemple suivant permet de créer une sous-classe de zones de construction et de localisation de groupes et d'emplacements dans deux sections du formulaire d'administration. Votre application nécessitera probablement quelques ajustements bien.
Le modèle:
class Location(models.Model):
state = models.CharField(max_length=30)
county = models.CharField(max_length=30)
city = models.CharField(max_length=30)
street = models.CharField(max_length=30)
class Building(Location):
name = models.CharField(max_length=120)
Le formulaire admin:
class BuildingAdmin(admin.ModelAdmin):
fieldsets = (
('Building', {
'fields': ('name',)
}),
('Location', {
'fields': (('state', 'county', 'city', 'street'),)
}),
)
admin.site.register(Building, BuildingAdmin)
Peut-être que vous pouvez montrer un scrennshot et le code admin.py que vous utilisez en ce moment? Peut-être que vous les enregistrez dans le mauvais sens, non? – kovshenin
@kovshenin: Le problème est que vous ne pouvez pas définir un formulaire en ligne pour l'emplacement si la clé étrangère définit une relation N: 1 entre le bâtiment et l'emplacement. –