मैंने Book, Book_stat एक Profile मॉडल बनाया है जिसका Django User मॉडल से संबंध है, मैं Book title और full_name from Profile को डिफ़ॉल्ट रूप से प्रदर्शित करने का प्रयास कर रहा हूं < Book_stat से मजबूत>str वापसी स्ट्रिंग

models.py

from django.db import models
from django.contrib.auth.models import User
from decimal import Decimal

# Create your models here.
class Book(models.Model):
    title = models.CharField(max_length=200)

    def __str__(self):
        return self.title

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    full_name = models.CharField(max_length=150)

    def __str__(self):
        return self.full_name

class Book_stat(models.Model):
    user = models.ForeignKey(User)
    book = models.ForeignKey(Book)
    rating = models.DecimalField(max_digits=5, decimal_places=2, default=Decimal('0.00'))
    like = models.BooleanField(default=False)

    def __str__(self):
        return self.book.title # here i would like to return book title + full_name from Profile Model 

admin.py

from django.contrib import admin
from .models import Book, Book_stat, Profile
# Register your models here.
admin.site.register(Book)
admin.site.register(Book_stat)
admin.site.register(Profile)    

जब मैं अपने django व्यवस्थापक पृष्ठ में Book_stat पर क्लिक करता हूं तो मैं अपने Book_stat list में शीर्षक के रूप में Book title और Profile full_name प्रदर्शित करना चाहता हूं।

2
Srinivas 1 अगस्त 2017, 10:11

3 जवाब

सबसे बढ़िया उत्तर
    def __str__(self):
        return self.book.title +' '+ self.user.profile.full_name

इस आशा को आजमाएं कि आपको यह मिल जाएगा

2
Exprator 1 अगस्त 2017, 10:18

ये कोशिश करें:

अपने प्रोफ़ाइल मॉडल में संबंधित_नाम इस तरह जोड़ें:

class Profile(models.Model):
    user = models.OneToOneField(User, related_name='profile', on_delete=models.CASCADE)
    full_name = models.CharField(max_length=150)

    def __str__(self):
        return self.full_name

और आपके बुकस्टैट मॉडल में:

class Book_stat(models.Model):
    user = models.ForeignKey(User)
    book = models.ForeignKey(Book)
    rating = models.DecimalField(max_digits=5, decimal_places=2, default=Decimal('0.00'))
    like = models.BooleanField(default=False)

    def __str__(self):
        return self.book.title + " - " + self.user.profile.full_name
1
Aakash Rayate 1 अगस्त 2017, 10:20
class Book_stat(models.Model):
    user = models.ForeignKey(User)
    book = models.ForeignKey(Book)
    rating = models.DecimalField(max_digits=5, decimal_places=2,     default=Decimal('0.00'))
    like = models.BooleanField(default=False)

    def __str__(self):
        return str(self.book.title) + " : " + str(self.user.get_full_name())  ## changes done here
0
Cadmus 1 अगस्त 2017, 10:19