models.py:
class MODEL(models.Model):
ModelName = models.CharField(max_length = 128, unique = True)
URL_Slug = models.SlugField(unique = True)
...
class Maker(models.Model):
maker = models.CharField(max_length = 128, unique = True)
URL_Slug = models.SlugField(unique = True)
...
class Truck(models.Model):
MODEL = models.ForeignKey(MODEL)
CarID = models.CharField(max_length = 10, unique = True, null = False)
Maker = models.ForeignKey(Maker)
year = models.IntegerField(default = 0)
def __unicode__(self):
return self.CarID
形式。py:
class MODELForm(forms.ModelForm):
ModelName = forms.CharField(max_length = 128, help_text = 'Enter the NEW model name')
URL_Slug = forms.SlugField(widget = forms.HiddenInput(), required = False)
class Meta:
model = MODEL
fields = ('ModelName', )
class MakerForm(forms.ModelForm):
maker = forms.CharField(max_length = 128, help_text = 'Enter the NEW maker')
URL_Slug = forms.SlugField(widget = forms.HiddenInput(), required = False)
class Meta:
model = Maker
fields = ('maker', )
class TruckForm(forms.ModelForm):
MODEL = forms.CharField(max_length = 128, help_text = 'Enter the NEW model name')
CarID = forms.CharField(max_length = 10, help_text = 'Enter the NEW truck ID')
Maker = forms.CharField(max_length = 128, help_text = 'Enter the NEW maker')
year = forms.IntegerField(help_text = 'Enter the year of production')
class Meta:
model = Truck
fields = ('MODEL', 'CarID', 'Maker', 'year')
意见。py:
def add_Truck(request):
form = TruckForm()
if request.method == 'POST':
form = TruckForm(request.POST)
if form.is_valid():
form.save(commit = True)
return index(request)
else:
print(form.errors)
return render(request, 'APP/addTruck.html', {'form': form})
HTML文件:
<!DOCTYPE html>
<html>
<body>
<div>
<form id = "Truck" method = "post" action = "/APP/NewTruck/">
{%csrf_token%}
{% for field in form.visible_fields %}
{{field.errors}}
{{field.help_text}}
{{field}}<br/>
{% endfor %}
<input type = "submit" name = "submit" value = "Create Truck">
</form>
</div>
</body>
</html>
我正在尝试在addTruck中创建一个新对象。html,因为模型和生成器是外键,所以在创建Truck对象时,模型和生成器字段也应该是object。
回溯:
以下是来自终端Macbook的Traceback:
-
[2017年8月7日09:14:04]“GET/APP/NewTruck/HTTP/1.1”200 1240
内部服务器错误:/APP/NewTruck/Traceback(最近一次调用
最后一次):File
“/Library/Frameworks/Python.framework/Versions/2.7/site packages/django/core/handlers/exception.py”,第39行,在内部响应=GET_响应(请求)文件中“/Library/Frameworks/Python。framework/Versions/2.7/lib/python2。7/站点包/django/core/handlers/base。py“,第187行,在_get_response response=self.process_exception_by_中间件(e,request)文件
”/Library/Frameworks/Python中。framework/Versions/2.7/lib/python2。7/站点包/django/core/handlers/base。py“,第185行,在_get_response response=wrapped_callback(请求,*callback_args,**callback_kwargs)文件“/Users/apple/WebWorkshop/TKTrading/APP/views中。py”,第88行,在
中,如果form.is\u valid():File“/Library/Frameworks/Python,则添加Truck。framework/Versions/2.7/lib/python2。7/站点包/django/forms/forms。py”,第169行,在有效返回self.is绑定而非self.errors文件“/Library/Frameworks/Python中。framework/Versions/2.7/lib/python2。7/站点包/django/forms/forms。py”,第161行,在errors self.full_clean()文件“/Library/Frameworks/Python中。framework/Versions/2.7/lib/python2。7/站点包/django/forms/forms。py“,第372行,在full_clean self.\u post_clean()文件“/Library/Frameworks/Python中。framework/Versions/2.7/lib/python2。7/站点包/django/forms/models。py“,第388行,在_post_clean self.instance=construct_instance(self,self.instance,opts.fields,opts.exclude)文件
”/Library/Frameworks/Python中。framework/Versions/2.7/lib/python2。7/站点包/django/forms/models。py“,第60行,在construct_instance f.save_form_data(instance,cleaned_data[f.name])文件“/Library/Frameworks/Python中。framework/Versions/2.7/lib/python2。7/站点包/django/db/models/fields/init。py”,第833行,在save_form_data setattr(instance,self.name,data)文件“/Library/Frameworks/Python中。framework/Versions/2.7/lib/python2。7/站点包/django/db/模型/字段/相关描述符。py“,第211行,在set self.field.remote_field.model._meta.object_name,ValueError:无法分配“u'Wing'”:“卡车”。“模型”必须是“模型”实例。
[07/Aug/2017 09:14:42]“POST/APP/NewTruck/HTTP/1.1”500 93290
在卡车表单中
,
MODEL = forms.CharField(max_length = 128, help_text = 'Enter the NEW model name')
在您的模型中,
MODEL = models.ForeignKey(MODEL)
ForeignKey字段需要是相应模型的实例,而不是纯文本。错误消息对此非常具体。在您的情况下,如果每次都要为新卡车创建新模型,出于适当的原因,您可能需要覆盖ModelForm
的save()
方法。或者,如果您想从现有的模型中选择模型,您可以让Django为字段使用默认的选择小部件,或者您也可以通过定义自定义小部件来覆盖该小部件。
MODEL = forms.ModelChoiceField(queryset=MODEL.objects.all())
#something like this.
如何知道django模型的一个实例何时在sqlite中创建了?我尝试了许多方法,但是我不知道或不知道我的数据库实例是何时创建的 从datetime导入datetime,time delta time _ threshold = datetime . now()-time delta(hours = 4)results = x . objects . filter(created _ _ lt =
在简单的示例中你可以使用 java.lang 和 java.util 包中的类, 还有用户自定义的Java Bean来构建数据对象: 使用 java.lang.String 来构建字符串。 使用 java.lang.Number 来派生数字类型。 使用 java.lang.Boolean 来构建布尔值。 使用 java.util.List 或Java数组来构建序列。 使用 java.util.Ma
本文向大家介绍Django 根据数据模型models创建数据表的实例,包括了Django 根据数据模型models创建数据表的实例的使用技巧和注意事项,需要的朋友参考一下 如果使用默认的数据库 SQLite3,则无需配置settings.py 使用其他数据库,则需要配置settings.py,这里以Mysql为例; 在models.py中完成数据模型的创建: 并且在admin.py中完成注册: 最
为了持久化数据,我首先创建了如下所示的user对象,并使用sessionFactory进行保存。 由于上述努力,创建了userid数据为int的用户表。 但后来我将POJO的userid数据类型更改为string。 另外,我将hbm2ddl属性更改为update。 因此,在此更改之后,即使用户对象使用字符串作为userid,表userid数据类型也不会更改为varchar。如何使用hibernat
问题内容: 我有只希望从中创建一个实例的模型,不应再允许更多实例。 这可能吗?我有感觉到已经在某处完成了此操作,但是很遗憾,我无法找到它。 编辑:我需要一个愚蠢的简单CMS。我有一个FrontPage和Page类继承的抽象类。我只希望能够创建一个首页对象。 FrontPage对象和Page对象之间的区别在于,它们应该具有略有不同的字段和模板,并且如上所述,只能创建一个FrontPage。 问题答案
问题内容: 我想创建一个模型对象,例如Person,如果不存在person的id,否则我将获得该person对象。 创建新人员的代码如下: 但是我不知道在哪里检查并获取现有的人对象。 问题答案: Django中已经有一个,https://docs.djangoproject.com/en/dev/ref/models/querysets/#get- or-create 对你来说可能是: