0

je suis nouveau à django et j'utilise la version 1.11
j'ai plusieurs modèles certains liés à des clés étrangères et certains avec une relation oneToOne.
par exemple l'utilisateur et les modèles de profil, je voudrais ajouter dans les champs de formulaire de profil de l'utilisateur formulaire
comment?
Pour le oneToOne, j'ai un modèle d'admin avec un champ oneToOne lié au modèle d'utilisateur. mais pas seulement admin, j'ai plusieurs types d'utilisateur (admin, écrivain, commetator, ...) chacun dans un modèle différent et en créant un type je crée également son utilisateur lié, ainsi quand j'accède au formulaire d'auteur dans l'admin je crée un administrateur, mais je veux aussi avoir le champ modèle de l'utilisateur afin que je crée à la fois de la forme de l'écrivain
dans adminadmin-à-dire: le modèle d'administration, je voudrais ajouter les champs de l'utilisateur sous la forme montrant dans le modèle d'administration
ajouter des champs au modèle d'un autre lié avec OneToOneField ou ForeignKey relation

from django.contrib import admin 

from .models import User, Admin 


class UserInline(admin.StackedInline): 
    model = User 
    fields = ['username', 'first_name', 'last_name'] 

class AdminAdmin(admin.ModelAdmin): 
    model = Admin 
    list_display = ['getUsername'] 
    inlines = [UserInline] 

    def getUsername(self, obj): 
     return obj.user.username 

    getUsername.short_description = "Nom d'utilisateur" 

admin.site.register(Admin, AdminAdmin) 

ce code génère l'erreur ": (admin.E202)" common.User "n'a pas ForeignKey à" common.Admin "."

Répondre

0

Avec cette configuration:

Class A(models.Model): 
    # ... 
    nameField = models.CharField(max_length=100, ...) 
    # ... 
    pass 

Class B(models.Model) 
    # ... 
    fk = models.ForeignKey(A) 
    # ... 

Class C(models.Model): 
    # ... 
    oto = models.OneToOneKeyField(A) 

Vous accès Cann le champ d'un modèle Realted avec le ForeignKey + __ + FieldName. Par exemple. vous pouvez accéder au modèle A champ de nom à partir de modèles connexes avec:

B

'fk__name'

C

'oto__name'

+0

merci pour votre réponse, mais cela n'a pas fonctionné J'ai l'erreur "Champ (s) inconnu (s) (utilisateur__nom_utilisateur) spécifié pour le profil .Contrôle les champs/fieldsets/exclut les attributs de la classe Pro fileAdmin. " – leila

+0

D'autres informations pourraient vous être utiles. 1) Où avez-vous mis ce code? 2) Où avez-vous besoin de domaines connexes? (Admin ou votre propre vue). 3) Pour quelle classe avez-vous besoin de ces modèles connexes? ('models.Model',' admin.ModelAdmin', 'forms.ModelForm'?) –

+0

s'il vous plaît vérifier le poste – leila