मैं एक सूची बनाना चाहता हूं जहां उपयोगकर्ता अपनी सूची में शीर्षक दे सकता है जिसमें वह चुनता है कि उसे किस श्रेणी में होना चाहिए, इस तरह मॉडल दिखता है

class UserListAnime(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    anime = models.ManyToManyField(Anime, through='ListAnime')


class Anime(models.Model):
    title = models.CharField(max_length=200)
    slug = extension_fields.AutoSlugField(populate_from='title', blank=True)


class ListAnime(models.Model):

LIST_CHOICES = (
        (WATCHING, 'Oglądam'),
        (PLANNING, 'Planuję'),
        (COMPLETED, 'Ukończone'),
        (DROPPED, 'Porzucone'),
        (ONHOLD, 'Wstrzymane'),
        (MISSING, 'Pomijam'),
    )

user = models.ForeignKey(UserListAnime, on_delete=models.CASCADE, null=True, blank=True)
    anime = models.ForeignKey(Anime, on_delete=models.CASCADE, null=True, blank=True)
    type = models.CharField(max_length=30, choices=LIST_CHOICES, null=False, blank=False)

दृश्य में मुझे केवल उपयोगकर्ता की एक सूची लेनी है और मैंने इसे प्रदर्शित किया है लेकिन मैं चाहता हूं कि इसे ListAnime के प्रकार से फ़िल्टर किया जाए

def ListAnimeView(request, pk, username):
    list_anime = UserListAnime.objects.filter(user__pk=pk, user__username=username,
                                           listanime__type='ogladam',
                                           anime__listanime__type='ogladam').all()
    context = locals()

और एचटीएमएल जैसा दिखता है

{% for list in list_anime.anime.all %}
    {{ list }}
{% endfor %}

मेरा सवाल यह है कि टाइप करते समय सभी रिकॉर्ड कैसे निकालें = LIST_CHOICES और इसे html में दिखाएं

संपादित करें: हल केवल UserListAnime,objects.. से ListAnime.objects को देखने में परिवर्तन की आवश्यकता है और html में होना चाहिए

{% for list in list_anime %}
    {{ list.anime }}
{% endfor %}
0
Tshibe 13 नवम्बर 2018, 17:43

1 उत्तर

सबसे बढ़िया उत्तर

मैं ठीक से नहीं जानता कि आप क्या हासिल करने की कोशिश कर रहे हैं। क्या आप एक उपयोगकर्ता को दी गई ListAnime संस्थाओं की सूची प्राप्त करना चाहते हैं, और केवल 'ओग्लाडम' प्रकार की प्राप्त करना चाहते हैं?

def listAnimeView(request, pk):
    list_anime = ListAnime.objects.filter(user__user_id=pk, type='ogladam')
    return render(request, 'template-name', context=['list_anime': list_anime])'
0
grouchoboy 13 नवम्बर 2018, 15:08