小编Ear*_*der的帖子

Django如何在一个表单上输入多条记录

我正在编写具有以下模型的日历应用程序:

class CalendarHour(models.Model):
    '''
    Each day there are many events, e.g. at 10 am, the framer orders
    material, etc.
    '''
    day_id = models.ForeignKey(CalendarDay)
    time = models.TimeField()
    work = models.TextField()

    def __unicode__(self):
        return 'work that took place at {work_time}'.format(work_time = self.time)

class CalendarDay(models.Model):
    '''
    Each project has so many daily logs.  But, each daily log belongs to     only one project (OneToMany relationship)
    '''
    company_id = models.ForeignKey(CompanyCalendar)
    day_date = models.DateField(auto_now_add = True) # Recording the date each log is entered in
    deadline …
Run Code Online (Sandbox Code Playgroud)

django django-templates django-forms modelform django-admin

5
推荐指数
0
解决办法
3599
查看次数

Django反向使用kwargs

比如,在我的注册类的post方法中,如果用户已经注册,我想将用户重定向到登录页面,这很简单.

class Register(View):
    ...
    def post(self, request):
        # Some code to check if the email address is already in the db
        message = {'message': 'You are already a member and registered the project.  Please just log-in',
                   'registration_date': the_registered_date}# The form with the filled-in data is returned
        return HttpResponseRedirect(reverse('accounts:login', kwargs = message))
Run Code Online (Sandbox Code Playgroud)

在我的urls.py中:

#urls.py
...
url(r'^login/{0,1}$', Login.as_view(), name='login', kwargs={'message': None, 'date': None}),
Run Code Online (Sandbox Code Playgroud)

这给了我错误信息:

Reverse for 'login' with arguments '()' and keyword arguments '{'message': 'You are already a member and registered the …
Run Code Online (Sandbox Code Playgroud)

django django-urls

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

Python 无法导入 openpyxl

我运行的是 Windows 7 并使用 Python 2.7。

我已经使用 easy_install 安装了 openpyxl。看起来安装成功了。我更改了目录并启动了 Python。

>>> import openpyxl
>>>
Run Code Online (Sandbox Code Playgroud)

所以,这应该意味着 Python 能够找到 openpyxl。但是,当我执行一个简单的测试程序 Excell_tutorial1.py 并运行它时,我得到以下结果:

Traceback (most recent call last):
File "C:/Python27/playground/excell_tutorial1.py", line 7, in <module>
from openpyxl import Workbook
ImportError: No module named openpyxl
Run Code Online (Sandbox Code Playgroud)

很混乱!它可以在提示行中找到它,但在程序中找不到它!

import os, sys

the_module ="C:\\Python27\\Lib\\site-packages\\openpyxl-2.3.3-py2.7.egg\\openpyxl"


if the_module not in sys.path:
    sys.path.append(the_module)

if the_module in sys.path:
    print sys.path.index(the_module)
    print sys.path[18]
Run Code Online (Sandbox Code Playgroud)

所以,这给了我:

18
C:\Python27\Lib\site-packages\openpyxl-2.3.3-py2.7.egg\openpyxl
Run Code Online (Sandbox Code Playgroud)

任何人都可以想到问题可能是什么?

非常感激

python import openpyxl

3
推荐指数
1
解决办法
6万
查看次数

Django List 将通过删除当前对象删除的对象

在我的 DeleteView 模板中,我想警告用户删除当前对象将删除以下对象(因为数据库架构需要on_delete = models.CASCADE)。

这是一个示例模型:

class Book(models.Model):
    course = models.ForeignKey(Course, related_name = 'course_books', on_delete = models.CASCADE, null = True, blank = True)

class Exercise(models.Model):
    book = models.ForeignKey(Book, related_name = 'exercises', on_delete = models.CASCADE, null = True, blank = True)
    ...

class Solution(models.Model):
    exercise = models.ForeignKey(Exercise, related_name = 'solutions', on_delete = models.CASCADE, null = True, blank = True)
Run Code Online (Sandbox Code Playgroud)

因此,假设用户想要删除一门课程,我想警告用户在删除当前书籍时将删除哪些书籍、练习和解决方案。这种效果的东西:

WARNING: Deleting course Programming 101 will delete Python Programming for Beginners and Python By Example.  It will also delete …
Run Code Online (Sandbox Code Playgroud)

django django-models

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

Django如何编写PositiveDecimalField

我想写 PositiveDecimalField。

这是我的代码:

from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _

from django.db.models import DecimalField
from decimal import *

def validate_positive_decimal(value):
    try:
        decimal_value = Decimal(value)

        if decimal_value < 0:
            raise ValidationError(_('{val} should be a positive decimal number'.format(val = decimal_value)), code='negative decimal')

    except (ValueError, TypeError):
        raise ValidationError(_('Enter a valid decimal or integer value'), code='invalid decimal')


class PositiveDecimalField(DecimalField):
    default_validators = [validate_positive_decimal]

    def __init__(self, *args, **kwargs):

        super(DecimalField, self).__init__(*args, **kwargs)

    def validators(self):
        return super(PositiveDecimalField, self).validators + [validate_positive_decimal]
Run Code Online (Sandbox Code Playgroud)

然后,在我的 models.py 中

class Service(models.Model): …
Run Code Online (Sandbox Code Playgroud)

django django-models django-validation

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

Django 中的多对多关系可以有两个外键吗?

我有两个模型,公司模型和合同模型。每份合同都是两家公司之间的。现在,公司和合同之间似乎存在多对多的关系,例如,一家公司可以有许多合同,而一份合同是在多个公司之间进行的。它是否正确?如果是,如何在 Django 中指定?是通过一个模型中的两个外键吗?

class Company(models.Model):
    company_name = models.CharField(max_length = 30)
    address = models.CharField(max_length = 100)
    website = models.CharField(max_length = 30)
    email = models.EmailField(max_length = 30)

class Contract(models.Model):
    company_1 = models.ForeignKey(Company, related_name="%(app_label)s_%(class)s_related_company1")
    company_2 = models.ForeignKey(Company, related_name="%(app_label)s_%(class)s_related_company2")
    company = models.ManyToManyField(Company)
    contract_date = models.DateField()
    consideration = models.DecimalField(max_digit =10, decimal_places = 2)
Run Code Online (Sandbox Code Playgroud)

django django-models

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

ChartJs 2 如何在加载时从圆环图中删除数字

所以,我有这个圆环图,在加载时会在图表段上显示数据编号。它使图表变得混乱,我找不到办法将其取出。我试过:

Chart.defaults.global.legend.display = false;
Run Code Online (Sandbox Code Playgroud)

但是,这会删除图例,而不是图表上的标签。在此输入图像描述

那么,1)如何通过删除这些数据标签来清理图表?2)如图所示,图表在左侧和右侧被裁剪。我确实检查了画布的宽度和高度,看起来它有更多的空间可以生长。那么,为什么图表会被裁剪呢?

javascript canvas chart.js

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