Vous n'êtes pas identifié(e).
Bonjour
Je rencontre un problème sur le site admin à cause des mes clés étrangères.
Je travaille actuellement dans une base de données existante et j'ai le problème suivant :
J'ai une table LettreRecommandee et une table Tiers .
Dans ma table Recommandee j'ai 2 ForeignKey sur Tiers qui représente mon expéditeur et mon destinataire.
J'ai cherché dans tous les sens mais je n'arrive pas à générer mon formulaire sur le site admin.
Voici mes models :
from __future__ import unicode_literals
from django.db import models
class Tiers(models.Model):
id_trs = models.AutoField(primary_key=True)
st_nom_trs = models.CharField(max_length=60, blank=True, null=True)
st_prenom_trs = models.CharField(max_length=40, blank=True, null=True)
st_rsoc_trs = models.CharField(max_length=60, blank=True, null=True)
id_civ = models.ForeignKey(Civilite, db_column='id_civ', blank=True, null=True)
id_tfs = models.ForeignKey(FormeSociale, db_column='id_tfs', blank=True, null=True)
id_ttr = models.ForeignKey('TypeTiers', db_column='id_ttr', blank=True, null=True)
id_exp_trs = models.ForeignKey('Adresse', related_name='id_expe_trs', blank=True, null=True)
id_des_trs = models.ForeignKey('Adresse', related_name='id_desti_trs', blank=True, null=True)
def __str__(self):
return '%s %s %s' %(self.st_nom_trs, self.st_prenom_trs, self.st_rsoc_trs)
class Meta:
managed = True
db_table = 'tiers'
class LettreRecommandee(models.Model):
id_rec = models.AutoField(primary_key=True)
d_envoi_rec = models.DateField(blank=True, null=True)
st_ref_rec = models.CharField(max_length=60, blank=True, null=True)
st_type_rec = models.CharField(max_length=60, blank=True, null=True)
st_num_rec = models.CharField(max_length=60, blank=True, null=True)
id_exp_rec = models.ForeignKey('Tiers', related_name='id_expe_rec', blank=True, null=True)
id_des_rec = models.ForeignKey('Tiers', related_name='id_desti_rec', blank=True, null=True)
def __str__(self):
return self.st_ref_rec
class Meta:
managed = True
db_table = 'lettre_recommandee'
et voici mon admin.py:
from django.contrib import admin
from django.conf.urls import include, url
from ex_fk.models import Tiers, LettreRecommandee
from django.http import HttpResponse
class TiersInline(admin.TabularInline):
model = Tiers
extra = 1
class LettreRecommandeeAdmin(admin.ModelAdmin):
fields = ['d_envoi_rec','st_type_rec','id_exp_rec','id_des_rec']
inlines = [TiersInline]
admin.site.register(Tiers)
admin.site.register(LettreRecommandee, LettreRecommandeeAdmin)
Sans inlines évidemment sans problème mais une fois que je tente de le remettre il me sort cette erreur :
ERRORS:
<class 'ex_fk.admin.TiersInline'>: (admin.E202) 'ex_fk.Tiers' has no ForeignKey
to 'ex_fk.LettreRecommandee'.
Je suis sous la version de Django 1.9 et de python 3.4 merci de m'aider help !!!
Hors ligne
Bonjour,
En premier, il faut utiliser une version stable, c'est à dire Django 1.8.2 par exemple. La 1.9 est en cours de développement et est réservée éventuellement à un usage avancé.
Sinon, la réponse au problème se trouve dans le documentation de l'admin:
https://docs.djangoproject.com/fr/1.8/r … in.fk_name
Hors ligne
Merci mais ça ne répond pas parfaitement à ma question
Hors ligne
La réponse à la question se trouve dans la seconde partie de ma réponse précédente.
Si ce n'est pas la cas, merci de fournir plus d'informations (la stacktrace complète par exemple) ainsi que ce que l'admin modifiée avec les indications de la documentation.
Hors ligne