Как внедрить систему User для доски объявлений (мне нужно, чтобы работодатели могли регистрироваться и создавать посты)? - PullRequest
0 голосов
/ 10 октября 2019

Я создаю доску вакансий, где пользователи могут искать почтовый индекс и видеть вакансии в своей области. У меня есть следующие models.py:

class Business(models.Model):
    name = models.CharField(max_length = 150)
    address = models.CharField(max_length = 150)
    city = models.CharField(max_length = 150)
    zip_code = models.CharField(max_length = 10)
    state = models.CharField(max_length = 30)
    phone_number = models.CharField(max_length = 10)


class Job(models.Model):
    business = models.ForeignKey(Business, on_delete = "models.CASCADE") #when the referenced object is deleted, also delete the objects that have references to it.
    title = models.CharField(max_length = 100)
    description = models.CharField(max_length = 500)
    zip_code = models.CharField(max_length = 10)

    def save(self, *args, **kwargs):
        zip_code = self.business.zip_code
        super(Job, self).save(*args, **kwargs)

Чтобы использовать веб-сайт для поиска работы, вам не нужно входить в систему. Однако мне, очевидно, нужно, чтобы работодатель мог создать учетную запись, чтобы ониможет зарегистрировать бизнес и разместить вакансии для указанного бизнеса. Я не уверен, как подойти к этому, и видел много разных способов сделать это онлайн. Если у меня есть модель Business, то расширьте модель User как:?

1 Ответ

1 голос
/ 10 октября 2019

Если ваше приложение только для этого и вы только начинаете, я бы сказал, что проще всего будет просто расширить модель User, как указано в django docs .

Но, скорее всего, вам скорее нужна модель Employee (у вас могут быть другие типы пользователей !?). Такая модель Employee может иметь отношение один к одному, например, с моделью User.

Здесь - это обзор вариантов расширения модели User для различных нужд.

ps Вам не нужно хранить почтовый индекс в модели Job (и не переопределятьсохранить в этом отношении). Вы можете получить к нему доступ через отношение внешнего ключа. Так что, если задание является объектом задания: job.business.zip_code даст вам zip_code

...