под тем же логином не могу выложить? - PullRequest
0 голосов
/ 02 ноября 2018

Я использую Django 2.07. В моем приложении после публикации первого поста, второго поста он не принимает пост под тем же именем пользователя (я использую Django all-auth). Администратор Django показывает, что «это имя пользователя уже завершено».

это модель моего профиля:

class Profile(models.Model):
    PUBLIC = 'Public'
    PRIVATE = 'Private'
    INITIATIVE ='Initiative'
    PRIVATE_STARTUP = 'Private and Startup'
    INITIAL_KEYWORD = (
    (PUBLIC, 'Public'),
    (PRIVATE, 'Private'),
    (INITIATIVE, 'Initiative'),
    (PRIVATE_STARTUP, 'Private and Startup'),
    )
    Type_of_account = models. NullBooleanField('Personal account', 
    help_text="by default this is Business account")
    user_photo = models.ImageField(upload_to='user_image', blank=True)
    user = models.OneToOneField(User, on_delete=models.CASCADE, default=1)
    occupation = models.CharField(max_length=400, null=False)
    name = models.CharField(max_length=200, null=False, blank=False, default=None)
    title = models.CharField(max_length=100, null=True, blank=True)
    url = models.URLField(max_length=200, null=True, blank=True)
    additional_url = models.URLField(max_length=200, null=True, blank=True )
    Headquarter = models.CharField(max_length=1000, null=True, blank=True)
    stock_market = models.CharField(max_length=200, null=True, blank=True)
    established = models.DateField(auto_now=False, auto_now_add=False, default=None)
    investors = RichTextField(null=True, blank=True)
    about_details = RichTextField(null=False, blank=False, default=None)
    Type_of_company = models.CharField(
     max_length=20,
     null=True, 
     blank=True, 
     choices=INITIAL_KEYWORD, 
     default=PRIVATE_STARTUP) 

Это моя основная модель.

class MainModel(models.Model):
    I_THINK = 'I think'
    GOOD_PART = 'Good part'
    BAD_PART ='Bad part'
    PROTOTYPE = 'Prototype'
    FEEDBACK = 'Feedback'
    INFO = 'Info'
    REVIEW = 'Review'
    ASK = 'Ask'
    FINACIAL_MARKET = 'Financial market'
    INITIAL_KEYWORD_FOR_THOUGHTS = (
    (I_THINK, 'I THINK'),
    (FEEDBACK, 'FEEDBACK'),
    (GOOD_PART, 'GOOD PART'),
    (BAD_PART, 'BAD PART'),
    (PROTOTYPE, 'PROTOTYPE'),
    (INFO, 'INFO'),
    (REVIEW, 'REVIEW'),
    (ASK, 'ASK'), 
    (FINACIAL_MARKET, 'FINANCIAL MARKET')
    )
    user = models.OneToOneField(User, on_delete=models.CASCADE, default=None)
    pub_time = models.DateTimeField('Publish time', auto_now=True)
    topic = models.CharField(max_length=2000, null=True, blank=True)
##
    micro_thought = models.CharField(max_length=200, null=True, blank=True) 
    Initial_keyword_for_thoughts = models.CharField(
    max_length=300,
    null=True, 
    blank=True, 
    choices=INITIAL_KEYWORD_FOR_THOUGHTS, 
 default=I_THINK
 ) 

Какие изменения я должен внести в поле пользователя main-models? как я могу решить эту проблему?

Спасибо за вашу помощь.

1 Ответ

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

Вы используете поле OneToOne , чтобы связать пользователя с публикацией. Используя поле OnetoOne, пользователь может иметь не более одного сообщения. Это проблема. Измените его на ForeignKey отношение.

user = models.ForeignKey(User, on_delete=models.CASCADE, default=None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...