0
votes

I have a contact us class in django model,that using "user_id" foreign key,in admin.py file,i want using userprofile data with user_id key,such as "name" filed,in userprofile model "user_id" is foreign_key too,how can do it?

in models.py :

class Ticket(models.Model):
    user_id = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, editable=False, verbose_name="user")
    replier_id = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, related_name="replier")
    guest_name = models.CharField(max_length=50, blank=True, null=True, editable=False)
    guest_email = models.CharField(max_length=255, blank=True, null=True, editable=False)
    user_phone = models.CharField(max_length=13, blank=True, null=True, editable=False)
    subject = models.CharField(max_length=255, blank=True, null=True, editable=False)
    message = models.TextField(editable=False)
    reply = models.TextField(blank=True, null=True)
    date = models.DateTimeField(auto_now=True, editable=False)
    reply_date = models.DateTimeField(blank=True, null=True)
    user_ip = models.GenericIPAddressField(editable=False)

in admin.py

class ContactUsAdmin(admin.ModelAdmin):
    actions = None
    fields = ('user_name', 'user_email', 'subject', 'date', 'message', 'user_phone', 'reply')
    list_display = ('user_name', 'user_email', 'subject', 'date', 'is_replied')
    list_filter = ('date',)
    search_fields = ['user_id__first_name', 'user_id__email', 'guest_name', 'guest_email', 'subject', 'message']
    readonly_fields = ('user_name', 'user_email', 'subject', 'date', 'message', 'user_phone', 'reply_date')

i want show name from UserProfile class in admin.py fields

2
Post your code please. - Selcuk
@Selcuk done... - farzaneh
Can you clarify what is your goal, your question is really unclear - scharette

2 Answers

0
votes
By the question title of your query. I am giving an incentive how to do that in django:
    class Album(models.Model):
        AlbumName = models.CharField(max_length=250)
        AlbumSinger = models.CharField(max_length=250)
        AlbumGenre = models.CharField(max_length=250)
        AlbumImage = models.FileField(null=True)
        SingerImage = models.FileField(null=True)
    class Musics(models.Model):
        album = models.ForeignKey(Album, related_name='music')
        MusicName = models.CharField(max_length=250)
        MusicLength = models.CharField(max_length=250)
        MusicFile = models.FileField(null=True)

Using foreignkey album in Musics. you can access to all the music according to their album. And to access them in admin, just import class name and do the following:

    admin.site.register(Album) 
    admin.site.register(Musics)

I hope it will clear your confusion.

-4
votes

finally i resolve it,when in userprofile model,user_id has "profile" related_name,in every where,with user_id foreign key we have all related field from every model that user_id is foreign key in it you can see those with using dir("you user_id instance"). so,with user_id.profile.name i get the profile name of user,without any importing or change!