小编tlo*_*tt1的帖子

Django错误:在可以使用多对多关系之前,需要为字段"..."设置一个值

保存表单时,我收到此错误:""需要为字段"surveythread"设置一个值,然后才能使用此多对多关系.

Models.py:

class SurveyResult(models.Model):
    stay = models.OneToOneField(Stay, related_name='survey')
    created = models.DateTimeField(default=datetime.now)
    vote = models.BooleanField(default=False)
    vote_service = models.BooleanField(default=False)
    comment = models.TextField(blank=True, null=True)

    def getThreads(self):
        return SurveyThread.objects.filter(parent_survey = self)

    threads = property(getThreads)

    def __unicode__(self):
        return self.vote and 'Good' or 'Bad'

    class Meta:
        get_latest_by = '-created'

class SurveyThread(models.Model):
    survey = models.ManyToManyField(SurveyResult, related_name='parent_survey')
    email = models.EmailField(max_length=200)
    comment = models.TextField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

views.py:

survey_list = SurveyResult.objects.filter(stay__guest__user=request.user) \
                                      .select_related('stay', 'stay__guest')

forms = {}
for survey in survey_list:
  forms[survey] = SurveyThreadForm(data=request.POST or None, survey=survey)

  if forms[survey].is_valid():
    instance = …
Run Code Online (Sandbox Code Playgroud)

python django

47
推荐指数
2
解决办法
3万
查看次数

两个指标的内在联接的大哦表现

我试图找出以下查询的Big-Oh性能:

SELECT * 
FROM table1 INNER JOIN table2 ON table1.a = table2.b
GROUP BY table1.a
Run Code Online (Sandbox Code Playgroud)

table1.a是表的主键.table2.b上有一个非唯一索引.

我的想法是,因为每一个索引可以在O(log n)的被搜索,然后这个查询为O执行(日志的n*log m),其中n是行的表1中,且m的数量的行的表2中的数量.

任何输入将不胜感激.

mysql sql performance join

11
推荐指数
1
解决办法
2123
查看次数

在Django REST框架中将不在模型中的字段添加到序列化程序中

我有一个模型注释,创建时可能会也可能不会创建新用户.因此,我的API在创建新评论时需要密码字段.这是我的评论模型:

class Comment(models.Model):
    commenter = models.ManyToManyField(Commenter)
    email = models.EmailField(max_length=100)
    author = models.CharField(max_length=100)
    url = models.URLField(max_length=200)
    content = models.TextField(blank=True, null=True)
    ip = models.IPAddressField(max_length=45)
    date = models.DateTimeField(default=datetime.now)
    post_title = models.CharField(max_length=200)
    post_url = models.URLField(max_length=200)
    rating = models.IntegerField(max_length=10, default=0)
Run Code Online (Sandbox Code Playgroud)

这是我的API视图:

class CommentNewView(CreateAPIView):
    model = Comment
    serializer_class = CommentCreateSerializer
Run Code Online (Sandbox Code Playgroud)

这是我的序列化器:

class CommentCreateSerializer(serializers.ModelSerializer):
    commenter_pw = serializers.CharField(max_length=32, required=False)

    class Meta:
        model = Comment
        fields = ('email', 'author', 'url', 'content', 'ip', 'post_title', 'post_url', 'commenter_pw')
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/api/comment/create/

Django Version: 1.5.2
Python Version: 2.7.2 …
Run Code Online (Sandbox Code Playgroud)

python api django rest django-rest-framework

10
推荐指数
2
解决办法
9969
查看次数

从Python中的message_from_string()获取地址

有人可以告诉我如何从Python中的email.message_from_string()获取发件人地址吗?谢谢!我试过了

message = email.message_from_string(email_text)
from = message['From']
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不起作用.

这是我正在解析的电子邮件:

Received: (qmail 16903 invoked by uid 30297); 27 Jul 2013 15:16:51 -0000
Received: from unknown (HELO p3pismtp01-015.prod.phx3.secureserver.net) ([10.6.12.15])
          (envelope-sender <tlovett88@gmail.com>)
          by p3plsmtp10-03.prod.phx3.secureserver.net (qmail-1.03) with SMTP
          for <reply@guestretain.com>; 27 Jul 2013 15:16:51 -0000
X-IronPort-Anti-Spam-Result: AkYDACPh81FKfVKyk2dsb2JhbABbgkQCgUVUvQmBEAgWDgEBAQEHCwsJFAQkghsJAQEEAUABGx4DAQsGBQEBAQECBQM4IgERAQUBHAYTh30BAwkGmxaMT4J/hBcKGScNZId0AQUMj3iEBQOXX49nFimDAYFVIA
Received: from mail-we0-f178.google.com ([74.125.82.178])
  by p3pismtp01-015.prod.phx3.secureserver.net with ESMTP; 27 Jul 2013 08:16:51 -0700
Received: by mail-we0-f178.google.com with SMTP id u57so2691391wes.23
        for <reply@guestretain.com>; Sat, 27 Jul 2013 08:16:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=mime-version:in-reply-to:references:date:message-id:subject:from:to
         :content-type; …
Run Code Online (Sandbox Code Playgroud)

python email

1
推荐指数
1
解决办法
2095
查看次数

标签 统计

python ×3

django ×2

api ×1

django-rest-framework ×1

email ×1

join ×1

mysql ×1

performance ×1

rest ×1

sql ×1