簡體   English   中英

無法分配“1”:“Plugins.category”必須是“PluginsCategory”實例。 Django 和 ForeignKey

[英]Cannot assign “1”: “Plugins.category” must be a “PluginsCategory” instance. Django and ForeignKey

我正在嘗試將新記錄保存到數據庫中,並且在寫入 ForeignKey 時發生錯誤

無法分配“1”:“Plugins.category”必須是“PluginsCategory”實例。

怎么了?

模型.py

class Plugins(models.Model):
    title = models.CharField(max_length=150, verbose_name='Название')
    category = models.ForeignKey('PluginsCategory', on_delete=models.PROTECT, related_name='get_category')

    def get_absolute_url(self):
        return reverse('urls_view_current_plugins', kwargs={'pk': self.pk})

    def __str__(self):
        return self.title


class PluginsCategory(models.Model):
    title = models.CharField(max_length=150, db_index=True, verbose_name='Наименования категории')

    def __str__(self):
        return self.title

標簽.py

def add_plugin_in_db():
    plugin = Plugins()
    plugin.title = 'title'
    plugin.category = 1
    plugin.save(force_insert=True)

在網站上

C:\PythonProject\ServiceCRM3\venv\lib\site-packages\django\db\models\fields\related_descriptors.py, line 215, in __set__
            raise ValueError( …
▼ Local vars
Variable    Value
instance    
<Plugins: Заказы>
self    
<django.db.models.fields.related_descriptors.ForwardManyToOneDescriptor object at 0x000000000438DAF0>
value   
1

您將其分配給category_id字段,因此:

ef add_plugin_in_db():
    plugin = Plugins()
    plugin.title = 'title'
    plugin.category_id = 1
    plugin.save(force_insert=True)

但是,您可以使其更緊湊:

def add_plugin_in_db():
    plugin = Plugins.objects.create(
        title = 'title'
        category_id=1
    )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM