【发布时间】:2020-11-20 17:32:10
【问题描述】:
我不知道发生了什么...昨天我在 django/admin 页面测试表单,确保我可以上传图像并且它工作得很好。今天早上,我遇到了一个类型错误,我一辈子都无法追踪它的来源。
这是我的models.py
from django.db import models
class MenuCategory(models.Model):
name = models.CharField(max_length=25, unique=True, default='')
summary = models.TextField(max_length=120, unique=False, default='')
class Meta:
verbose_name = 'Menu Category'
verbose_name_plural = 'Menu Categories'
def __str__(self):
return '' + self.name
class MenuItem(models.Model):
category = models.ForeignKey(MenuCategory, on_delete=models.CASCADE)
title = models.CharField(max_length=25, unique=True)
price = models.FloatField()
image = models.ImageField(upload_to='', width_field=200, height_field=200)
description = models.TextField(max_length=240, unique=False, default='')
class Meta:
verbose_name = 'Menu Item'
verbose_name_plural = 'Menu Items'
def __str__(self):
return '' + self.title
还有我的 admin.py
from django.contrib import admin
from menu.models import MenuItem, MenuCategory
# Register your models here
admin.site.register(MenuItem)
admin.site.register(MenuCategory)
class MenuInlines(admin.TabularInline):
model = MenuItem
class CategoryAdmin(admin.ModelAdmin):
inlines = [MenuInlines]
我真的不明白 TypeError 在哪里 =(
这似乎昨天工作正常,我不知道我改变了什么。
我做了'makemigrations'和'migrate'只是为了确定......有什么线索吗?我是否遗漏了一些可能相关的内容?
【问题讨论】:
-
您能告诉我们您遇到的确切类型错误吗?
-
你遇到了什么类型的错误?可以上传吗?错误在哪里(在 cmd 中)或(在 html 中)?
-
是的,它是 getattr():属性名称必须是字符串。请求方法:POST 请求 URL:127.0.0.1:8000/admin/menu/menuitem/add Django 版本:3.1.3 异常类型:TypeError 异常值:getattr():属性名必须为字符串
-
您也可以在 html 中设置图像的大小。所以你应该在 html 中尝试一下。
-
非常感谢!原来是这样!哇!很奇怪,因为我昨天有这个工作,但非常感谢你! =)
标签: python django django-models django-templates