Невозможно вывести содержимое, специфичное для пользователя

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

models.py

class Job(models.Model):
    company = models.CharField(max_length=40, null=True, verbose_name="Company/Employer")
    description = models.TextField(null=True)
    role = models.CharField(max_length=25)
    area_of_filming = models.CharField(max_length=50, verbose_name="Area Of Filming", default="")
    contact_email = models.EmailField(verbose_name='Contact Email', max_length=60, default='')
    created = models.DateTimeField(auto_now_add=True)
    user = models.ForeignKey(Account, default='', null=True, on_delete=models.CASCADE)   

    def __str__(self):
        return self.company

class Account(AbstractBaseUser):
    email = models.EmailField(verbose_name='email', max_length=60, unique=True)
    name = models.CharField(max_length=45, unique=False)
    date_joined = models.DateTimeField(verbose_name='date joined', auto_now_add=True)
    last_login = models.DateTimeField(verbose_name='last login', auto_now=True)
    is_admin = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)
    is_employee = models.BooleanField(default=True, verbose_name='Are you using FilmLink as an employee?')

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['name', 'is_employee']

    objects = MyAccountManager()

    class Meta:
        permissions = [
            ("post_jobs", "Can post jobs"),
        ]

    def __str__(self):
        return self.name

    def has_perm(self, perm, obj=None):
        return True

    def has_perms(self, perm):
        return True

    def has_module_perms(self, app_label):
        return True

    @property
    def is_staff(self):
        return self.is_admin

views.py

@login_required(login_url='login')
def manage_jobs(request):
    if request.user.is_employee:
        return redirect('home')
    else:
        form = JobForm(request.POST)
        if form.is_valid():
            form.save()
        context = {"form":form}
        return render(request, 'employer/manage-jobs.html', context)

manage-jobs.html

<button id="myBtn">Post A Job</button>
    <div id="main"></div>
    <div id="myModal" class="modal">
      <div class="modal-content">
        <span class="close">&times</span>
        <form action="" method="POST">
          {% csrf_token %}
          <div id="company-container">
            <p>Employer Name</p>
            <p id="employer">{{form.company}}</p>
          </div>
          <div id="role-container">
            <p>Role (e.g. Actor, Director)</p>
            <p id="role">{{form.role}}</p>
          </div>
          <div class="area-of-filming-container">
            <p>Area Of Production/Filming</p>
            <p id="area-of-filming">{{form.area_of_filming}}</p>
          </div>
          <div id="contact-email-container">
            <p>Contact Email</p>
            <p id="contact-email">{{form.contact_email}}</p>
          </div>
          <div id="description-container">
            <p>Description Of Job</p>
            <p id="description">{{form.description}}</p>
          </div>
          <button type="submit" id="post-job">Publish Job</button>
        </form>
      </div>
    </div>

Вы сказали, что это должно выводить "задания". Это выведет только одно задание, но я предполагаю, что вы собираетесь решить эту проблему после того, как сможете увидеть содержимое на экране.

Я думаю, что проблема связана с вашей формой фронтенда. Обратите внимание, что в вашей функции views.py manage_jobs, если пользователь не является сотрудником, вы создаете форму по POST, но фронтенд не подключается к этому request.POST.

Я не уверен, как выглядит ваш файл urls.py, но вы хотите ссылаться на этот вызов views.py из вашей формы.

В вашем <form action="{% url 'manage_jobs' %}" method="POST">

Это может не быть вашим решением, но я бы проверил это в любом случае.

Надеюсь, вы сможете разобраться!

Вернуться на верх