1

i have below model,

from django.db import models

# Create your models here.
class user_files(models.Model):
    Filename = models.CharField(max_length=50)
    Browse = models.FileField()

and in my view i want all data from above model, my view is..

def user_in(request):

    if not request.user.is_authenticated:
        return render(request, 'accounts/logout.html')

    else:
        if request.method == 'POST':
            form_new = Fileupload(request.POST, request.FILES )
            #instance=form_new.save(commit=False)
            #instance.save()
            if form_new.is_valid():
                form_new.save()
                return redirect('in')
        else:
            form_new = Fileupload()
            data = user_files.objects.all()
            return render(request, 'accounts/in.html', {'form_new': form_new}, {'data':data})

and in my template i am writing,

<div>
    {% if request.user.is_authenticated %}
        {% for da in data %}
            <h3>{{data.Filename}}</h3>
        {% endfor %}

    {% endif %}

</div>

but in my view, it is showing error for objects.all() as unresolved attribute. i am stuck . i am using pycharm. How to solve this?

Thanks in advance

Mangesh Tak
  • 287
  • 4
  • 15

1 Answers1

1

You are rendering like this

<h3>{{data.Filename}}</h3>

'data' is a QuerySet it will not have any Filename attribute.

you have to do this.

<h3>{{da.Filename}}</h3>
  • i already imported required model in my view. and now also changed data.filename to da.filename. But still not showing data on template. whereas i printed data on console, it is showing all objects there. my template, {% for da in data %}

    {{da.Filename}}

    {% endfor %} in view , i have written, data = user_files.objects.all() #print(data) return render(request, 'accounts/in.html', {'form_new': form_new}, {'data':data}) i dont know what i am missing?
    – Mangesh Tak Oct 05 '17 at 23:43
  • I think this line is unusual `render(request, 'accounts/in.html', {'form_new': form_new}, {'data':data})` right one `render(request, 'accounts/in.html', {'form_new': form_new,'data':data})` The third positional argument should be the context as above line – Vamsidhar Muggulla Oct 10 '17 at 12:29