标签: django-models

Django对基于外键的字段求和

所以这是我的模型:

class Puzzles(models.Model):
    user = models.ForeignKey(User)
    puzzle = models.CharField(max_length=200)


class Scores(models.Model):
   user = models.ForeignKey(User)
   puzzle = models.ForeignKey(Puzzles)
   score = models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)

因此,用户将获得多个分数。对于排行榜页面,我想输出总得分最高的用户(从所有不同得分中添加)。我真的对执行此操作的python代码迷失了。

任何帮助表示赞赏,谢谢!

django django-models django-views

0
推荐指数
2
解决办法
3067
查看次数

如何在Django模型中对多对多关系进行排序

我想根据优惠券的数量对标签进行排序.标签和商店模型具有多对多的关系,商店和优惠券具有一对多的关系.

我的models.py:

class tags(models.Model):
    """ This is the tag model """

    seo_url = models.URLField()                                                 # SEO URL for mypromocodes.in
    tagDescription = models.TextField()                                         # Tag Description
    tag = models.CharField(max_length=200)                                      # Tag name
    tagSlug = models.CharField(max_length=400)                                  # Extra info can be added to the existing tag using this field
    updatedAt = models.DateTimeField(auto_now=True)                             # Time at which tag is updated
    createdAt = models.DateTimeField(auto_now_add=True)                         # Time at which tag is created
    hash = models.CharField(max_length=10,unique=True)                          # Tag Hash for mypromocodes.in

    def save(self, *args, **kwargs):
        """Custom …
Run Code Online (Sandbox Code Playgroud)

python django django-models

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

Python:从查询中创建逗号分隔的字符串

我有一个问题

 messages = Message.objects.all()
Run Code Online (Sandbox Code Playgroud)

我想创建一个从message.number创建一个逗号分隔的所有数字的字符串

这是我尝试过的:

number = ""
for obj in messages:
     number = number + "," + obj.number
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?PS这个字符串可以超过400,000个数字!

python django django-models

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

如何将数据传递给Django中的clean方法

我正在将"外部"参数传递给我的自定义清理方法.

除了标识符,我使用表单传递所有内容.标识符来自URL.除了表单之外,我还需要使用标识符.

这是我的代码:

class Entry(models.Model):
    identifier = models.ForeignKey(Offer)
    name = models.CharField(max_length=64)
    description = models.TextField()


class EntryForm(ModelForm):
    class Meta:
        model = Entry

    def clean(self):
        try:
            Entry.objects.get(
                identifier=THIS IS WHAT I NEED TO FILL,
                description=self.cleaned_data['description'],
                name=self.cleaned_data['name'])
        raise forms.ValidationError(_(u'We already have an entry with the same credentials!'))
    except Entry.DoesNotExist:
        pass
    return self.cleaned_data
Run Code Online (Sandbox Code Playgroud)

视图:

def addEntry(request, identifier):

    entry = get_object_or_404(Entry, pk=identifier)

    if request.method == "POST":
        entryForm = EntryForm(data=request.POST)
        if entryForm.is_valid():
            entry = entryForm.save(commit=False)
            entry.identifier = identifier
            entry.save()
        else:
            entryForm = EntryForm(data=request.POST)
...
Run Code Online (Sandbox Code Playgroud)

所以我错过了我可以将标识符添加到clean方法的部分.

感谢先进的帮助!

django django-models django-forms

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

使用OneToOne字段保存模型

我创建了一个配置文件模型来扩展默认的django用户(使用django 1.6)但是我无法正确保存配置文件模型.

这是我的模型:

from django.contrib.auth.models import User

class Profile(models.Model):
    user = models.OneToOneField(User)
    mobilephone = models.CharField(max_length=20, blank=True)  
Run Code Online (Sandbox Code Playgroud)

这是我的celery-task,用于从wdsl文件更新personrecords:

@task()
def update_local(user_id):

    url = 'http://webservice.domain.com/webservice/Person.cfc?wsdl'

    try:
        #Make SUDS.Client from WSDL url
        client = Client(url)
    except socket.error, exc: 
        raise update_local.retry(exc=exc)
    except BadStatusLine, exc:
        raise update_local.retry(exc=exc)


    #Make dict with parameters for WSDL query
    d = dict(CustomerId='xxx', Password='xxx', PersonId=user_id)

    try:
        #Get result from WSDL query
        result = client.service.GetPerson(**d)
    except (socket.error, WebFault), exc:
        raise update_local.retry(exc=exc)
    except BadStatusLine, exc:
        raise update_local.retry(exc=exc)



    #Soup the result
    soup = BeautifulSoup(result) …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-users

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

尝试保存模型Django 1.5时出现`namedtuple_as_object`错误

我试图更新int我的Django模型中的一个字段.

但是在更新此字段时出现以下错误.

(这是python manage.py shell在ipython中使用)

# this is what I m trying to do
>> a = download.objects.get(id=1)
>> a.url = ""
>> a.save() # raises an error

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/usr/local/lib/python2.7/dist-packages/django/core/management/commands/shell.pyc in <module>()
----> 1 a.save()

/usr/local/lib/python2.7/dist-packages/django/db/models/base.pyc in save(self, force_insert, force_update, using, update_fields)
    544 
    545         self.save_base(using=using, force_insert=force_insert,
--> 546                        force_update=force_update, update_fields=update_fields)
    547     save.alters_data = True
    548 

/usr/local/lib/python2.7/dist-packages/django/db/models/base.pyc in save_base(self, raw, cls, origin, force_insert, force_update, using, update_fields)
    624                         values = …
Run Code Online (Sandbox Code Playgroud)

python django django-models

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

如何在Django中为form.ChoiceField定义模型?

我做了一个包含如下字段的表单:

sex = forms.ChoiceField(choices= SEX)
Run Code Online (Sandbox Code Playgroud)

哪里:

SEX = (
    ('F','Female'),
    ('M','Male'),
    ('U','Unsure'),
    )
Run Code Online (Sandbox Code Playgroud)

现在我想知道如何最好地定义性别模型?我知道可以这样做:

class UserProfile(models.Model):
    user = models.ForeignKey('User')
    sex = models.CharField(max_length=10)
Run Code Online (Sandbox Code Playgroud)

但是,没有比CharField更好的选择了吗?

django django-models

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

django db查询,得到错误

这是我的模特:

 class company_profile(models.Model):
       user=models.ForeignKey(User, unique=True)
       company=models.CharField(max_length=200)

      def __unicode__(self):
            return self.company
Run Code Online (Sandbox Code Playgroud)

当我得到django shell我做了以下,它工作正常:

  from my_app.models import company_profile
  everything = company_profile.objects.all()
  # this gives me the correct out put of the existing company names , 
Run Code Online (Sandbox Code Playgroud)

但是当我做以下事情时:

  username = company_profile.objects.all().filer(user='rakesh')

  this is the error , that i am getting : 

  ValueError: invalid literal for int() with base 10: 'rakesh'
Run Code Online (Sandbox Code Playgroud)

我怎么能解决这个问题,或者我的查询错了.

python django django-models

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

Django密码= models.CharField(_('密码'),max_length = 128)

下划线在此行中有什么相关性('密码')?

password = models.CharField(_('password'), max_length=128)

我查看了Django文档,并指出模型字段定义中的第一个参数是'详细名称',但是在这种情况下我无法找到下划线的相关性?

我正在查看的整个文件是:https: //github.com/django/django/blob/master/django/contrib/auth/models.py

谢谢,马克

python django django-models

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

Django:将模型重构为子模块

在一个应用程序中的models.py变得很大之后,我尝试将一些类移到子包中。

旧的结构是这样的:

# File: assets/models.py
class Asset(...):
    # lots of irrelevant code

# File: widgets/models.py
from assets.models import Asset
class Video(...):
    asset = models.ForeignKey(Asset)
Run Code Online (Sandbox Code Playgroud)

这项工作没有问题,因此,我不再赘述该结构的更多细节。

我现在尝试做的是将Asset类移到子模块中。现在的结构如下:

# File: assets/models/__init__.py (of course I deleted the old models.py)
from .assets import Asset

# File: assets/models/assets.py
class Asset(...):
    # lots of irrelevant code

# File: widgets/models.py
from assets.models.assets import Asset
class Video(...):
    asset = models.ForeignKey(Asset)
Run Code Online (Sandbox Code Playgroud)

不知何故,这是行不通的,而且我无法弄清楚到底是什么引起了麻烦。我得到的错误是这样的:

widgets.video:“asset”与model关联,尚未安装或抽象

python django refactoring django-models

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