我有一个小细节,我有一个表单,在其中一个字段中我想得到一个数字(例1)并填写表格。我想添加另一个产品,并连续增加和退出连续数字(即2)等等。
当我运行python manage.py migrate时,它标记了我的model.py中的错误,我不知道如何修复它。
当我上传新产品时,我希望它在文本框中自动增加1,但我不知道该怎么做,你能帮帮我吗?
Model.py
<a href="home.html">Visit the Home Page</a>
view.py
class Equipo(models.Model):
folio = models.IntegerField()
marca = models.CharField(max_length=100)
modelo = models.CharField(max_length=100)
serie = models.CharField(max_length=100)
express = models.CharField(max_length=100)
numem = models.CharField(max_length=100)
responsable = models.CharField(max_length=100)
departamento = models.ForeignKey(Departamento)
puesto = models.CharField(max_length=100)
descripcion = models.CharField(max_length=100)
estado = models.ForeignKey(Estado)
estatus = models.ForeignKey(Estatus)
hdd = models.CharField(max_length=100)
procesador = models.CharField(max_length=100)
ram = models.CharField(max_length=100)
ubicacion = models.ForeignKey(Ubicacion)
fechaal = models.CharField(max_length=12, null=True)
ultman = models.CharField(max_length=12, null=True)
proxman = models.CharField(max_length=12, null=True)
status = models.BooleanField(default=True)
def __unicode__(self):
return unicode(self.folio)
def number():
folio = Equipo.objects.count() #Here I frame error when I do the migration
if folio == None:
return 1
else:
return no + 1
incremcode = models.IntegerField(_('Code'), max_length=5, unique=True, \
default=number)
form.py
def altaeq_view(request):
if request.method =='POST':
form = EquipoForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('#')
else:
form = EquipoForm()
return render_to_response('altaeq.html',{'form':form},context_instance=RequestContext(request))
答案 0 :(得分:1)
运行迁移时,模型类不能直接使用。那是因为您的数据库和类可能不同(直到迁移运行...)。
您可以像这样替换您的方法:
def number(self):
return self.objects.count() + 1
注意:
如果不需要if folio == None
。这不可能发生,count()
将返回一个整数。同样在Python中,您可以这样写:if folio is None
。