我正在编写具有以下模型的日历应用程序:
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) 比如,在我的注册类的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) 我运行的是 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)
任何人都可以想到问题可能是什么?
非常感激
在我的 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) 我想写 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 中指定?是通过一个模型中的两个外键吗?
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) 所以,我有这个圆环图,在加载时会在图表段上显示数据编号。它使图表变得混乱,我找不到办法将其取出。我试过:
Chart.defaults.global.legend.display = false;
Run Code Online (Sandbox Code Playgroud)
那么,1)如何通过删除这些数据标签来清理图表?2)如图所示,图表在左侧和右侧被裁剪。我确实检查了画布的宽度和高度,看起来它有更多的空间可以生长。那么,为什么图表会被裁剪呢?
django ×5
canvas ×1
chart.js ×1
django-admin ×1
django-forms ×1
django-urls ×1
import ×1
javascript ×1
modelform ×1
openpyxl ×1
python ×1