2017-11-08 21 views
0

私はまだPythonとDjangoの新機能です。私はカスタムユーザーモデルを持っています。特定のユーザーによって作成されたモデルデータのみを表示します。私は以下を試しましたが、うまくいきません。私はまだ学んでいることを理解してください。クエリセットを使用して表示されたモデルをフィルタリングする

モデル

class Company(models.Model): 
    user = models.ManyToManyField(settings.AUTH_USER_MODEL) 
    name = models.CharField(max_length=265) 

    def __str__(self): 
     return self.name 

    def get_absolute_url(self): 
     return reverse('nodisoapp:home') 

ビュー

class CreateCompany(LoginRequiredMixin, generic.CreateView): 
    login_url = '/scrty/login/' 
    form_class = forms.Companyform 
    template_name = 'nodiso/create_company.html' 

    def form_valid(self, form): 
     response = super(CreateCompany, self).form_valid(form) 
     self.object.user.add(self.request.user) 
     return response 
    def get_queryset(self): 
     self.user = get_object_or_404(models.Company,user) 
     return models.Company.filter(user=self.user) 

テンプレート

{% if company_list %} 
    <h1>Please select your company</h1> 
    <ul> 
     {% for company in company_list %} 
     <li>{{company.name}}</li> 
    </ul> 
    {% endfor %} 
    <button type="button" class="btn btn-info" href="{% url 'nodisoapp:createcompany' %}">Create New Company</button> 
     <a href="{% url 'nodisoapp:createcompany' %}">create</a> 

     {% else %} 
     <h1>You have no companies</h1> 
     <a href="{% url 'nodisoapp:createcompany' %}">create</a> 
     <button type="button" class="btn btn-info" href="{% url 'nodisoapp:createcompany' %}">Create A Company</button> 
     {% endif %} 

は私が助けに感謝

答えて

0

あなたがそれを行う方法が

def get_queryset(self): 
    return models.Company.filter(user=self.request.user) 
+0

を使用することで、現在ログインしているユーザーを使用したい場合は、私は、コードを変更しましたが、それはまだそれが唯一のビューに追加する必要があり、すべてのデータを示しています? – Hennie

関連する問題