Tag: django

用独特的SECRET_KEY分配Django项目

我有一个Django项目,我想分布在像bitbucket或github公共存储库。 我希望它尽可能容易安装,所以我包括完整的项目,不只是可插拔的应用程序。 这意味着settings.py文件也将包含在内。 我怎样才能避免settings.SECRET_KEY每个安装相同的问题? 是用户手动修改settings.py的唯一简单解决scheme吗? 我应该将密钥存储在默认数据库中,如果settings.py不存在,则将其初始化? 这将解决问题,但我想知道是否已经有一个标准的方式来做到这一点。 谢谢!

Django或Ruby-On-Rails?

我一直在找工作。 大多数公司需要RoR或Django的经验。 我不知道任何语言。 使用RoR的组织数量大于Django。 但是我更喜欢django,因为python。 你的编码员/招聘人员build议我知道什么?

django:django.utils.functional.SimpleLazyObject的目的是什么?

我遇到了一个问题,我把request.user分配给了一个名为prior_user的variables,然后对用户进行了基本的validation,然后检查了request.user != prior_user 。 我期望他们不是一样的,而且prior_user应该包含`AnonymousUser。 令我惊讶的是,他们是一样的。 示例代码: prior_user = request.user # request object, obtained froma view authenticate_user(request) # some function that authenticates print prior_user.username != request.user.username # returns False iethey are the same! 然后,我发现prior_user实际上包含一个django.utils.functional.SimpleLazyObject的实例,所以我认为它是某种懒惰的查找types的东西,即prior_user的价值是不查找,直到实际使用。 看源代码,我无法证实这一点。 任何有Django经验的人都可以告诉我发生了什么,为什么需要这样做? 这让我有点动摇,因为通常的赋值语句不能像我期望的那样工作,Django中的其他内容也是这样吗? 我也没有看到在文档中描述的这一点。 所以任何拥有django超级人类知识的人都可以提供一些清晰度?

在Django中进行Python日志logging

我正在开发一个Django应用程序,我正在尝试使用Python的日志logging模块进行错误/跟踪logging。 理想情况下,我想为站点的不同区域configuration不同的logging器。 到目前为止,我已经完成了所有这些工作,但有一件事让我挠头。 我有根logging器去sys.stderr,我已经configuration另一个logging器写入文件。 这是在我的settings.py文件中: sviewlog = logging.getLogger('MyApp.views.scans') view_log_handler = logging.FileHandler('C:\\MyApp\\logs\\scan_log.log') view_log_handler.setLevel(logging.INFO) view_log_handler.setFormatter(logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')) sviewlog.addHandler(view_log_handler) 看起来很简单。 但是,问题在于:无论我写入sviewlog,都会被写入日志文件两次。 根logging器只打印一次。 这就像addHandler()被调用两次。 而当我通过一个debugging器把我的代码,这正是我所看到的。 settings.py中的代码被执行了两次,因此创build了两个FileHandler并将其添加到同一个logging器实例中。 但为什么? 我该如何解决这个问题? 谁能告诉我这里发生了什么事? 我已经尝试移动sviewloglogging器/处理程序实例化代码到它使用的文件(因为这实际上似乎是适当的地方给我),但我有同样的问题。 我在网上看到的大多数例子都只使用根logging器,而我更喜欢有多个logging器。

在git pulling我的Django项目之后重启/重载Gunicorn(通过Upstart)的更好方法

我寻找的东西比sudo restart projectname每次我发出一个git pull origin master ,这拉下了我的最新变化Django项目。 我相信这个restart命令与Upstart有关,我用它来启动/顶部我的Gunicorn服务器进程。 此重新启动会导致短暂的中断。 用户点击Web服务器(nginx)将得到500,因为Gunicorn仍在重新启动。 实际上,它似乎立即重启,但页面加载需要几秒钟的时间。 任何想法如何使这无缝? 理想情况下,我想要发出我的git pull而Gunicorn会自动重新加载。

TextField在django.forms中丢失

from django import forms class UserForm(forms.ModelForm): first_name = forms.TextField(label=_(u'First name'), required=False) last_name = forms.TextField(label=_(u'Last name')) 它给了我一个“ AttributeError:”模块“对象没有属性”TextField“ 。似乎一切都好,除了缺less的TextField: ipdb> forms <module 'django.forms' from '/usr/local/lib/python2.7/dist-packages/django/forms/__init__.pyc'> ipdb> forms. forms.BaseForm forms.EmailField forms.MultiWidget forms.TypedChoiceField forms.BaseModelForm forms.Field forms.MultipleChoiceField forms.TypedMultipleChoiceField forms.BooleanField forms.FileField forms.MultipleHiddenInput forms.URLField forms.CharField forms.FileInput forms.NullBooleanField forms.ValidationError forms.CheckboxInput forms.FilePathField forms.NullBooleanSelect forms.Widget forms.CheckboxSelectMultiple forms.FloatField forms.PasswordInput forms.fields forms.ChoiceField forms.Form forms.RadioSelect forms.fields_for_model forms.ClearableFileInput […]

错误:预计`2015-05-29T19:06:16.693209Z`为date – Angular

我正在与Django与rest-framework angular应用程序.. 该应用程序从服务器接收它的信息与JSON。其中一个键是created_time …该created_time的值是格式根据iso-8601 ,例如2015-05-29T19:06:16.693209Z 。 在客户端我有一个字段: <input type="time" ng-model="created_time"> 但是当数据到达时,我得到这个错误: Error: [ngModel:datefmt] Expected `2015-05-29T19:06:16.693209Z` to be a date http://errors.angularjs.org/1.3.13/ngModel/datefmt?p0=2015-05-29T19%3A06%3A16.693209Z at REGEX_STRING_REGEXP (angular.js:63) at Array.<anonymous> (angular.js:19807) at Object.ngModelWatch (angular.js:23289) at Scope.$get.Scope.$digest (angular.js:14235) at Scope.$get.Scope.$apply (angular.js:14506) at done (angular.js:9659) at completeRequest (angular.js:9849) at XMLHttpRequest.requestLoaded (angular.js:9790) 我已经尝试了一切:(格式是完全一样的angular度文档中的说明…

Django post_save()信号的实现

我有一个关于Django的问题。 我在这里有ManyToMany模型 class Product(models.Model): name = models.CharField(max_length=255) price = models.DecimalField(default=0.0, max_digits=9, decimal_places=2) stock = models.IntegerField(default=0) def __unicode__(self): return self.name class Cart(models.Model): customer = models.ForeignKey(Customer) products = models.ManyToManyField(Product, through='TransactionDetail') t_date = models.DateField(default=datetime.now()) t_sum = models.FloatField(default=0.0) def __unicode__(self): return str(self.id) class TransactionDetail(models.Model): product = models.ForeignKey(Product) cart = models.ForeignKey(Cart) amount = models.IntegerField(default=0) 对于创build的1个购物车对象,我可以插入尽可能多的新的TransactionDetail对象(产品和数量)。 我的问题是。 我怎样才能实现触发器? 我想要的是无论何时创build一个交易细节,我都希望产品的库存量减去transactiondetail中的金额。 我读过关于post_save(),但我不知道如何实现它。 也许这样的事情 […]

如何在Django的values()中重命名项目?

我想在djangoproject.com上的这个票上做类似的事情 ,但是有一些额外的格式。 从这个查询 >>> MyModel.objects.values('cryptic_value_name') [{'cryptic_value_name': 1}, {'cryptic_value_name': 2}] 我想得到这样的东西: >>> MyModel.objects.values(renamed_value='cryptic_value_name') [{'renamed_value': 1}, {'renamed_value': 2}] 还有另外一种内置的方法,还是我必须手动执行?

如何获取Django-Rest-Framework序列化程序中的Request.User?

我试过这样的东西,这是行不通的。 class PostSerializer(serializers.ModelSerializer): class Meta: model = Post def save(self): user = self.context['request.user'] title = self.validated_data['title'] article = self.validated_data['article'] 我需要一种能够从我的Serializer类访问request.user的方法。