无法创建Django mod的新实例

2024-06-16 09:13:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个客户模型:

class Customer(models.Model):
    Name = models.TextField(blank=False)
    Surname = models.TextField(blank=False)
    PhoneNumber = models.TextField()
    Address = models.TextField()
    SendSms = models.BooleanField(default=True)
    SendEmail = models.BooleanField(default=True)
    Email = models.TextField()

    @classmethod
    def create(cls, name, surname, phoneNumber, address , sendSms, sendEmail, email):
        customer = cls(Name=name, Surname = surname, PhoneNumber = phoneNumber
                        , Address = address, SendSms = sendSms, SendEmail = sendEmail
                        , Email = email)
        return customer

引用thisdoc,这就是我创建新对象的方法。在

我有一个创建新客户的表格。工作原理如下:

^{pr2}$

我有另一个视图witch列出了所有客户,但在该视图中我得到了空数组。在

def AllCustomers(request):
    return render_to_response("Customer/AllCustomers.html", {"customers": Customer.objects.all()})

有人能告诉我我这里缺少什么来创建对象吗?在


Tags: namefalsetruedefault客户addressmodelscustomer
2条回答

最好的选择是使用Django的ORMcreate method。但是如果你想覆盖这个方法,添加一些功能。您应该使用Manager

class CustomerManager(models.Manager):
    def create(self, **kwargs):
        super(CustomerManager, self).create(**kwargs)
        # Here it goes custom code

那么你应该参考模型中的经理

^{2}$

您需要调用^{} method来实际制作一个记录:

customer = cls(Name=name, Surname = surname, PhoneNumber = phoneNumber
               ,Address = address, SendSms = sendSms, SendEmail = sendEmail
               ,Email = email)
customer.save()
return customer

或者需要使用Model.objects.create(..)

^{2}$

相关问题 更多 >