2

I want to show the data of a user which he has entered. This is my model

class IgaiaContent(models.Model):
    CONTENT_CHANNELS = (
        ('YouTube','Youtube'),
        ('FaceBook','FaceBook'),
        ('Flickr','Flickr'),
        ('Instagram','Instagram'),
    )
    content_name =          models.CharField(max_length=255, primary_key=True)
    content_type =          models.CharField(max_length=255,null=True)
    content_source =        models.CharField(max_length=255,null=True, choices=CONTENT_CHANNELS)
    content_location =      models.CharField(max_length=255,null=True)
    content_latitude =      models.DecimalField(max_digits=20,decimal_places=2,null=True)
    content_longitude =     models.DecimalField(max_digits=20,decimal_places=2,null=True)
    content_embed_code =    models.TextField(null=True)
    content_description =   models.TextField(null=True)
    content_tags_user  =  models.CharField(max_length=255,null=True)  
    content_time_uploaded = models.DateTimeField(auto_now_add=True)
    content_time_updated =  models.DateField(null=True)

    def __unicode__(self):
        return self.content_name
        return self.content_type
        return self.content_source
        return self.content_location
        return self.content_latitude
        return self.content_longitude
        return self.embed_code
        return self.description
        return self.tags_user 
        return self.time_uploaded
        return self.time_updated



tagging.register(IgaiaContent)

My view

def create_page(request):
    if request.method == 'POST':
            form = AuthorForm1(request.POST) 
            if form.is_valid(): 
                    form.save()
                    return HttpResponseRedirect('/thanks/')
    else:
            form = AuthorForm1()

    c = {}
    c.update(csrf(request))
    return render_to_response('portal/form1.htm',{'form':form},context_instance=RequestContext(request))

My form template:

<form method="post" style="height: 553px; width: 594px">
<div class="style12">

{% csrf_token %}

        </br>{{ form.as_p }}

</div>
</form>

thats how i am showing my model values

employee_info1 = {
    "queryset" : IgaiaContent.objects.all(),
    "template_name" : "portal/emp1.html",
}

urlpatterns = patterns('',


    (r'^view5/',  list_detail.object_list, employee_info1),
)

emp1.html

{% if object_list %}
<table>
<ul>
{% for item in object_list %}
   <li>{{item.content_name}}</li>
   <li>{{item.content_type}}</li>
   <li>{{item.content_source}}</li>
   <li>{{item.content_location}}</li>
   <li>{{item.content_latitude}}</li>
   <li>{{item.content_longitude}}</li>
   <li>{{item.content_embed_code}}</li>
   <li>{{item.content_description}}</li>
   <li>{{item.content_tags_user}}</li>
   <li>{{item.content_time_uploaded}}</li>
   <li>{{item.content_time_updated}}</li></ul>
{% empty %}
   <td colspan="11">No items.</td>
{% endfor %}
</table>
{% endif %}

It is not displaying specific user value means it is displaying me everything. can anyone tell me how to show specific user values/data?

1 Answer 1

3

You need to update your model so that it contains a field to store the user -

from django.contrib.auth.models import User

class IgaiaContent(models.Model):
    #...
    user = models.ForeignKey(User)

Then you need to create a ModelForm as described here.

class IgaiaContentForm(forms.ModelForm):

   def __init__(self, *args, **kwargs):
       self.request = kwargs.pop('request', None)
       return super(MyModelForm, self).__init__(*args, **kwargs)

   def save(self, *args, **kwargs):
       kwargs['commit']=False
       obj = super(MyModelForm, self).save(*args, **kwargs)
       if self.request:
           obj.user = self.request.user
       obj.save()

   class Meta:
        model = IgaiaContent

Now update your view so that that you use your new ModelForm

def create_page(request):
    if request.method == 'POST':
            form = IgaiaContentForm(request.POST) 
            if form.is_valid(): 
                    form.save()
                    return HttpResponseRedirect('/thanks/')
    else:
            form = IgaiaContentForm() 
    #...

Now in your object_list view you do something like -

from django.shortcuts import render_to_response

def object_list(request):
    #....
    object_list = IgaiaContent.objects.filter(user=request.user)
    return render_to_response('object_list_template.html', {'object_list': object_list})
Sign up to request clarification or add additional context in comments.

3 Comments

thanku soo much :) i am making a view like this def object_list(request): object_list = IgaiaContent.objects.filter(user=request.user) return object_list(request,queryset=list_detail.object_list, template_name='portal/emp.html')
but it is giving me error 'QuerySet' object is not callabe..can u plz tell me why?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.