मैं django में मॉडल बनाना सीख रहा हूँ। लेकिन जब मैं माइग्रेशन करने की कोशिश कर रहा हूं तो मुझे एक त्रुटि संदेश मिलता है क्योंकि मालिक के हिस्से में प्रथम श्रेणी के get_full_name और मूवी क्लास की वापसी में भी त्रुटि है।

जो त्रुटियां सामने आती हैं, वे निम्नलिखित हैं: पंक्ति 23,20 के बीच ForeignKey में `` get_full_name'` सदस्य नहीं है और यह कि दर_काउंट के रूप में दोनों दर परिभाषित चर के रूप में नहीं हैं। मैं यहां कोड छोड़ता हूं।

`from django.db import models

from django.contrib.auth import get_user_model

from django.core.validators import MaxValueValidator

User= get_user_model()`

class MoveList(models.Model):
    #modelo de lista para ver
    name= models.CharField('Nombre de la Lista', max_length=50, unique=True)
    owner = models.ForeignKey(User)
    movies = models.ManyToManyField('movies.Movie')


    def __str__(self):
        return "'{list}' de {owner}".format(
            list =self.name,
            owner =self.owner.get_full_name()
        )

class Movie(models.Model):
    #Modelo de peliculas
    name= models.CharField('Nombre de la pelicula',max_length=100)
    release_date = models.DateField('Fecha de estreno')
    rate = models.PositiveIntegerField('Total de claificaciones de la pelicula',blank=True, null=True)
    rate_count = models.PositiveIntegerField('Veces que se ha calificado a la pelicula',blank=True)
    tags = models.ManyToManyField('movies.Tag')
    studio = models.ForeignKey ('movies.Studio',on_delete=models.SET_NULL, null=True)
    director =models.ForeignKey('movies.Director',on_delete=models.SET_NULL, null=True)

    def average_rate(self):
        """"devuelve la calificación"""

        if self.rate_count == 0:
            return 0
        else:
            return rate/rate_count

    def __str__(self):
        return self.name
0
Rocio Cejudo 13 अगस्त 2018, 18:56

2 जवाब

यहां वास्तव में दो प्रश्न हैं।

अपने दूसरे प्रश्न के लिए, प्रतिस्थापित करें:

return rate/rate_count

द्वारा:

return self.rate/self.rate_count
0
Cyrlop 13 अगस्त 2018, 20:12

क्या आपने @property डेकोरेटर वाली संपत्ति में "औसत_दर" बनाने पर विचार किया है? यदि आप इस गणना की गई संपत्ति को एक टेम्पलेट में उपयोग करने का इरादा रखते हैं (और आपको किसी भी पैरामीटर में जोड़ने की आवश्यकता नहीं है), तो मैं ऐसा करने की सलाह दूंगा।

ऐसा लगता है कि आप बिना "स्वयं" के दर और दर_गणना का उपयोग कर रहे हैं। एक्सेसर, यही वजह है कि वे अनाम के रूप में दिखाई दे रहे हैं।

@property
def average_rate(self):
    """"devuelve la calificación"""

    if self.rate_count == 0:
        return 0
    else:
        return self.rate/self.rate_count

"get_full_name" के संबंध में, यह सुनिश्चित नहीं है कि यह ठीक से काम क्यों नहीं कर रहा है। ऐसा लगता है कि यह उदाहरण और उसके मूल्य के बजाय मॉडल फ़ील्ड क्लास को पकड़ रहा है।

0
stephen 13 अगस्त 2018, 20:18