【问题标题】:under same username I can not post?同一个用户名不能发帖?
【发布时间】:2018-11-02 04:26:36
【问题描述】:

我正在使用 Django 2.07。在我发布第一篇文章后的应用程序中,第二篇文章没有使用相同的用户名发布文章(我使用的是 Django all-auth)。在 Django admin 中,它显示“此用户名已经存在。”

这是我的个人资料模型:

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
 ) 

我必须在主模型用户字段中进行哪些更改? 我该如何解决这个问题?

感谢您的帮助。

【问题讨论】:

    标签: django django-models django-allauth


    【解决方案1】:

    您正在使用OneToOne 字段将用户与帖子相关联。使用 OnetoOne 字段,用户最多可以拥有一个帖子。这就是问题所在。将其更改为 ForeignKey 关系。

    user = models.ForeignKey(User, on_delete=models.CASCADE, default=None)
    

    【讨论】:

    • 感谢您的帮助...@a_k_v
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    相关资源
    最近更新 更多