无法使用Django将嵌入文档插入模型

2024-09-26 18:17:09 发布

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

我无法使用django在模型中创建嵌入文档,我使用django作为我的数据库。它一直告诉我,我的值必须是model:<class 'django.db.models.base.Model'>的一个实例,即使我已经创建了模型中的所有字段。我真的需要一些帮助

我的模型:

class SMSHistory(models.Model):
    ThoiGian = models.DateField(default=datetime.date.today,null=True,blank=True)
    SoDienThoai = models.CharField(max_length=100,null=True,blank=True)
    SeriNo = models.CharField(max_length=100,null=True,blank=True)
    Count = models.IntegerField(default=0,null=True,blank=True)
class WebHistory(models.Model):
    ThoiGian = models.DateField(default=datetime.date.today,null=True,blank=True)
    DiaChiIP = models.CharField(max_length=100,null=True,blank=True)
    SoDienThoai = models.CharField(max_length=100,null=True,blank=True)
    SeriNo = models.CharField(max_length=100,null=True,blank=True)
    Count = models.IntegerField(default=0,null=True,blank=True)
class AppHistory(models.Model):
    ThoiGian = models.DateField(default=datetime.date.today,null=True,blank=True)
    DiaChiIP = models.CharField(max_length=100,null=True,blank=True)
    SoDienThoai = models.CharField(max_length=100,null=True,blank=True)
    SeriNo = models.CharField(max_length=100,null=True,blank=True)
    Count = models.IntegerField(default=0,null=True,blank=True)
class CallHistory(models.Model):
    ThoiGian = models.DateField(default=datetime.date.today,null=True,blank=True)
    SoDienThoai = models.CharField(max_length=100,null=True,blank=True)
    SeriNo = models.CharField(max_length=100,null=True,blank=True)
    Count = models.IntegerField(default=0,null=True,blank=True)
class History(models.Model):
    MaTem = models.CharField(max_length=100,null=True,blank=True)
    MaSP = models.CharField(max_length=100,null=True,blank=True)
    SMS = models.EmbeddedModelField(
        model_container = SMSHistory
    )
    App = models.EmbeddedModelField(
        model_container = AppHistory
    )
    Web = models.EmbeddedModelField(
        model_container = WebHistory
    )
    Call = models.EmbeddedModelField(
        model_container = CallHistory
    )

我的观点


    class check(View):
    def get(self,request):
        return render(request,'website/main.html')
    def post(self,request):
        matem=request.POST.get('txtCheck')
        print(matem)
        temp=khotemact.objects.filter(MaTem=matem)
        print(temp[0])
        tim=History.objects.filter(MaTem=temp[0].MaTem)
        if len(tim)==0:
            print('khong co')
            them=History.objects.create(MaTem=temp[0].MaTem,MaSP='123',
            SMS={'ThoiGian':'2010-1-1','SoDienThoai':'12324','SeriNo':'12343','Count':0},
            App={'ThoiGian':'2010-1-1','DiaChiIP':'1','SoDienThoai':'12324','SeriNo':'1236','Count':0},
            Web={'ThoiGian':'2010-1-1','DiaChiIP':'1','SoDienThoai':'12324','SeriNo':'1236','Count':0},
            Call={'ThoiGian':'2010-1-1','SoDienThoai':'1233','SeriNo':'123','Count':0}
            )
            them.save()
        else:
            print('co')
            # History.objects.filter(MaTem=temp[0].MaTem).update(Web={'Count':Count+1})
        return HttpResponse('oke')

我收到了这样一个错误


    ValueError at /website/check/
Value: {'ThoiGian': '2010-1-1', 'SoDienThoai': '12324', 'SeriNo': '12343', 'Count': 0} must be instance of Model: <class 'django.db.models.base.Model'>

多谢各位


Tags: truedefaultmodelmodelscountnulllengthmax
1条回答
网友
1楼 · 发布于 2024-09-26 18:17:09

正如错误所说,您应该使用模型实例,并且您正在使用dict

SMS={'ThoiGian':'2010-1-1','SoDienThoai':'12324','SeriNo':'12343','Count':0}

SMS = SMSHistory.objects.create(ThoiGian='2010-1-1', SoDienThoai='12324',SeriNo='12343', Count=0)

相关问题 更多 >

    热门问题