Как найти только зарегистрированный пользовательский контент в django? - PullRequest
0 голосов
/ 17 ноября 2018
class User(auth.models.User,auth.models.PermissionsMixin):
    def __str__(self):
        return '@{}'.format(self.username)



class placement(models.Model):
    name=models.CharField(max_length=150, blank=True, null=True)
    ad_space=models.CharField(max_length=100, blank=False, null=False)
    PID_TYPE = (
        ('FN','FORMAT_NATIVE'),
        ('FNB','FORMAT_NATIVE_BANNER'),
        ('FI','FORMAT_INTERSTITIAL'),
        ('FB','FORMAT_BANNER'),
        ('FMR','FORMAT_MEDIUM,RECT'),
        ('FRV','FORMAT_REWARDED_VIDEO'),
    )

    format = models.CharField(max_length=3,choices = PID_TYPE,default = 'FN',blank=False, null=False)
    pid=models.CharField( max_length=50,default='',blank=False, null=False)
    cpm=models.IntegerField(default=0,blank=False, null=False)
    ADS_TYPE=(
        ('FB','FACEBOOK'),
        ('G','GOOGLE'),
    )

    source=models.CharField(max_length=2,choices=ADS_TYPE,default='FB',blank=False, null=False)
    comments=models.TextField(default='',blank=False, null=False)
    objects=models.Manager()


    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse("dashapp:disp")`

Теперь, что я должен сделать, чтобы отображать в шаблоне только зарегистрированный пользовательский контент. Поскольку в настоящий момент все сохраненные данные выбираются.Вышедший из системы пользователь для данных отображается.Я в основном новичок, поэтому я не имею никакого представления об этом заранее.Полное объяснение необходимо.

1 Ответ

0 голосов
/ 17 ноября 2018

Вы можете получить доступ к зарегистрированному пользователю следующим образом:

{% if user.is_authenticated %}
    <p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
    <p>Welcome, new user. Please log in.</p>
{% endif %}

В django зарегистрированный пользователь имеет атрибут is_authenticated, который является логическим значением. Если пользователь вошел в систему, он выдает True, иначе False.

Обновление

Если вы хотели видеть значения модели placement в шаблоне для текущего пользователя, вам необходимо установить некоторые отношения с пользователем для placement. Поэтому необходимо обновить модель размещения:

class placement(models.Model):
    user = models.ForeignKey(User, null=True, default=None)
    ....  # rest of the fields

И сохранить информацию о пользователе для размещения в представлениях:

class SomeCreateView(CreateView):
   ...
   def form_valid(self, form):
        form.instance.user = User.objects.get(id = self.request.user.id)
        return super(SomeCreateView, self).form_valid(form)

и получите места размещения пользователя, как это:

 placements = placement.objects.filter(user=request.user)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...