हैलो, मैं Django सीख रहा हूँ और मैं मॉडल से देखने के लिए डेटा पास नहीं कर सकता। मैं सीखने के उद्देश्य के लिए एक सरल ब्लॉग बनाने की कोशिश कर रहा हूं, लेकिन हमेशा जब मैं दृश्य प्रस्तुत करता हूं, तो चर मौजूद होता है यदि मैं एक शर्त करता हूं लेकिन जब मैं उस चर तक पहुंचने का प्रयास कर रहा हूं - यह लिखता है क्या आप इस टैग त्रुटि को पंजीकृत या लोड करना भूल गए ..

एचटीएमएल:

{% if posts %}
    {% posts %}
{% else %}
    without posts
{% endif %}

Model.py:

STATUS = (
    (0,"Draft"),
    (1,"Publish")
)


class Category(models.Model):
    name = models.CharField(max_length=200, unique=True)
    slug = models.SlugField(max_length=200, unique=True)
    active = models.BooleanField(default=False)
    img = models.ImageField()
    description = models.TextField()
    class Meta:
        ordering = ['-name']

    def __str__(self):
        return self.name


class Post(models.Model):
    title = models.CharField(max_length=200, unique=True)
    slug = models.SlugField(max_length=200, unique=True)
    author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='blog_posts')
    wide_img = models.ImageField()
    hide_img = models.ImageField()
    updated_on = models.DateTimeField(auto_now= True)
    content = models.TextField()
    created_on = models.DateTimeField(auto_now_add=True)
    status = models.IntegerField(choices=STATUS, default=0)
    category = models.ForeignKey(Category, on_delete= models.CASCADE)


    class Meta:
        ordering = ['-created_on']

    def __str__(self):
        return self.title

View.py

from blog.models import Post

def index(request):
    posts = Post.objects.filter(status=1).order_by('?')[:3]
    context = {
        "posts": "jaj",
    }
    template_name="index.html"
    return render(request, template_name, context)
0
Vojta Prchal 19 मार्च 2020, 17:56

1 उत्तर

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

चर डबल ब्रेसिज़ का उपयोग करके प्रदर्शित होते हैं, न कि ब्रेसिज़ +% (जो टेम्प्लेटटैग के लिए है)। IOW आप चाहते हैं:

{% if posts %}
  {{ posts }}
{% else %}
   without posts
{% endif %}

त्रुटि संदेश एक संकेत हो सकता था, क्योंकि यह सुझाव देता है कि यह {% posts %} को एक ज्ञात टेम्पलेटटैग के रूप में नहीं पहचानता है।

0
bruno desthuilliers 19 मार्च 2020, 18:01