首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用django-models插入查询

使用django-models插入查询
EN

Stack Overflow用户
提问于 2018-03-13 14:31:59
回答 2查看 50关注 0票数 0

DB结构

用户,用户有多个事件,事件有多个参与者。

用户模型:

代码语言:javascript
复制
from django.db import models


class User(models.Model):
    email = models.CharField(max_length=100, unique=True, null=True)
    firstname = models.CharField(max_length=100, null=True)
    lastname = models.CharField(max_length=100, null=True)
    org_url = models.CharField(max_length=100, null=True)

    office_username = models.CharField(max_length=100, null=True)
    office_email = models.CharField(max_length=100, null=True)

    isdeleted = models.BooleanField(default=False)
    createdon = models.DateTimeField(auto_now_add=True, null=True)
    modifiedon = models.DateTimeField(auto_now=True, null=True)

事件模型:

代码语言:javascript
复制
from django.db import models
from .user import User


class OEvent(models.Model):
    frk_user = models.ForeignKey(User, on_delete=models.CASCADE)    
    o_event_id = models.CharField(max_length=250, null=True)
    location = models.CharField(max_length=250, null=True)
    starts_at = models.CharField(max_length=50, null=True)
    ends_at = models.CharField(max_length=50, null=True)
    event_title = models.CharField(max_length=150, null=True)

    isdeleted = models.BooleanField(default=False)
    createdon = models.CharField(max_length=50, null=True)
    modifiedon = models.CharField(max_length=50, null=True)

与会者模型:

代码语言:javascript
复制
from django.db import models
from .o_events import OEvent

class OEventAttendee(models.Model):
    frk_o_event = models.ForeignKey(OEvent, on_delete=models.CASCADE)
    email = models.CharField(max_length=200, null=True)
    name = models.CharField(max_length=200, null=True)

我可以针对用户插入事件,如下所示:

代码语言:javascript
复制
user.oevent_set.create(
        o_event_id=nData['Id'],
        location=nData['Location']['DisplayName'],
        starts_at=startdt,
        ends_at=enddt,
        event_title=nData['Subject'],
        isdeleted=False,
        createdon=createdon,
        modifiedon=modifiedon
    )

像这样添加与会者的最好、最简单、最快捷的方法是什么?

我假设我们可以在修改字段后添加event_attendees list = attendees array。但找不到这样的东西。

EN

回答 2

Stack Overflow用户

发布于 2018-03-13 16:00:57

在您的"OEventAttendee“模型中,您需要一个"OEvent”实例,因此您需要创建第一个 "OEvent“实例,然后您可以使用Django bulk_create方法创建参与者

票数 0
EN

Stack Overflow用户

发布于 2018-03-13 14:42:36

您可以为用户字段上的事件和attendee related_name="attendees"添加related_name="events",因此您可以执行以下操作

在创建与会者之后,您可以在user.events.attendees.all()循环中执行user.events.attendees.add(atendee)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49249664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档