【问题标题】:Django edit databases entrys Primary KeyDjango 编辑数据库条目主键
【发布时间】:2014-07-31 01:07:07
【问题描述】:

就是这样,我想知道怎么做才能编辑我的数据库上的主键,我已经尝试使用 list_editable 创建一个 model.Admin 并设置“id”,但它没有用

class ArticleAdmin(admin.ModelAdmin):
list_display = ('article_title','article_body','article_state','id')
list_editable = ('id','article_state',)

想法?

【问题讨论】:

  • 如果idAutoField,您将无法对其进行编辑。但是,将其更改为 IntegerField 将使其可编辑 - 但为什么呢?这样做非常危险。
  • 这不会有什么好处
  • 是的。你为什么不解释你为什么要这样做?可能有更好的方法来做你想做的事。
  • (@Nathaniel 有两种好处:一无是处和没有好处。所以听起来这里有很多好东西。)这些不是您要更新的产品编号,是吗?
  • 如果您的主键是在某处可见的键,那么它们可能不应该是主键。您可能需要重新考虑为什么需要更改主键。

标签: python database django primary-key


【解决方案1】:

要更改订单,您可以添加订单字段:

class Article(models.Model):
    order = models.IntegerField(default=0)

    class Meta:
        ordering = ['order']

    def save(self, *args, **kwargs):
        # Not quite sure you would want to do this but it's at least an option.
        if self.order == 0 and self.pk:
            self.order = self.pk

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-13
    • 2017-12-04
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2013-05-29
    • 2017-05-29
    相关资源
    最近更新 更多