如何在交互式shell中导入自定义模板标记或过滤器以查看一切是否正常?
我有两台机器表现不同,我不知道如何进行一些调试.
在生产机器上我无法加载模板过滤器,我收到错误"找不到模板库".在本地机器上一切正常.
我有一个模型,我有:
ipv4_address = models.IPAddressField(verbose_name=_('ipv4 address'), blank=True, null=True, unique=True, default=None)
ipv6_address = models.GenericIPAddressField(protocol='IPv6', verbose_name=_('ipv6 address'), blank=True, null=True, unique=True, default=None)
Run Code Online (Sandbox Code Playgroud)
并告诉我这里描述的麻烦:https://code.djangoproject.com/ticket/4136
我怎么解决这个问题?
我正在考虑制作一个自定义GenericIPAddressField,它将NULL插入数据库而不是空字符串.你怎么看?有其他可能的解决方案吗?
我需要在多对多关系上设置自定义保存和删除方法.
我尝试使用"通过"属性指定一个模型,但这使我的代码过于复杂并引入了一些问题.我在多对多模型上不需要任何额外的字段,只需要自定义保存和删除方法.
是否可以在不指定"通过"属性的情况下完成此操作?
这是代码:
class Order(BaseDate):
#lots of fields
relateds = models.ManyToManyField('RelatedProduct', verbose_name=_('related products'), blank=True, related_name='order_relateds', through='OrderRelateds')
# more fields
total = CurrencyField(verbose_name=_('total'))
def calculate_total(self):
cleanses = self.cleanse.taxed_price() * self.quantity
delivery = DELIVERY_PRICE if self.delivery == 'delivery' else 0
relateds = 0
for r in self.relateds.all():
relateds = relateds + float(r.taxed_price())
total = float(cleanses) + delivery + relateds
return total
def save(self, *args, **kwargs):
self.total = '%.2f' % self.calculate_total()
super(Order, self).save(*args, **kwargs)
class OrderRelateds(models.Model):
order = models.ForeignKey(Order)
relatedproduct = models.ForeignKey(RelatedProduct, …Run Code Online (Sandbox Code Playgroud) 我在同一台服务器上有两个基于django的Web应用程序.其中一个我将调用CORRECT_PROJECT,另一个调用WRONG_PROJECT
最后一个CORRECT_PROJECT是使用虚拟环境安装的,并使用不同版本的django(1.4).有一个非常奇怪的问题:有时,通常在注销或电子邮件确认后(但有时看起来只是随机!),服务器返回500内部服务器错误,错误日志说
"无法导入设置'WRONG_PROJECT.settings'(是否在sys.path上?):没有模块名称WRONG_PROJECT.settings,请参阅:CORRECT_PROJECT/URL"
也就是说,通过加载CORRECT_PROJECT,有时系统(WSGI?Apache?Django?)会尝试从WRONG_PROJECT加载设置.
通过积极地点击刷新,错误消失.可能有什么不对?我怎么调试?
CORRECT_PROJECT在deamon模式下使用WSGI.
使用deamon模式:http://modwsgi.readthedocs.org/en/latest/configuration-directives/WSGIDaemonProcess.html
我不知道如何访问验证器中的大小。
这是我的代码
# serializers.py
class VideoSerializer(serializers.ModelSerializer):
""" Base serializer for Video model"""
video = serializers.FileField(validators=[validate_file_type, validate_file_size])
class Meta:
model = Video
read_only_fields = ('video',)
# validators.py
def validate_file_size(temp_file):
...
Run Code Online (Sandbox Code Playgroud)
现在,我不知道如何从临时文件访问文件大小。
这里。print(repr(temp_file))输出以下内容。
<tempfile._TemporaryFileWrapper object at 0x7f8bec3b0438>
我可以在中间件中获取当前会话或cookie吗?
我试过但是我得到了:
'WSGIRequest' object has no attribute 'session'
Run Code Online (Sandbox Code Playgroud) 我用控制台测试了它.
$ python manage.py shell
>>> from myapp.models import Product
>>>
>>> p = Product.objects.all()[0]
>>> print p.name
>>> 'Chia Seeds'
>>> p = Product.objects.filter(name__istartswith='chia s')
>>> print p
>>> []
Run Code Online (Sandbox Code Playgroud)
使用Django-Trunk(1.4a1)和MySQL 5.1.49-1ubuntu8.1
这是MySQL的问题吗?还有什么?
我能够在Rails 2.3中进行LIKE查询的唯一方法如下:
access_points.all(:conditions => "mac_address LIKE '%#{@q}%'")
Run Code Online (Sandbox Code Playgroud)
官方文档说这样做是不安全的,因为受SQL注入:
将自己的条件构建为纯字符串可能会使您容易受到SQL注入攻击.例如,Client.first(:conditions =>"name LIKE'%#{params [:name]}%'")不安全.有关使用数组处理条件的首选方法,请参阅下一节. http://guides.rubyonrails.org/v2.3.8/active_record_querying.html
但不幸的是,它没有解释如何正确地进行LIKE查询,而且我无法在谷歌上找到它,因为LIKE是如此通用的关键字.
任何提示?我是Rails的新手,但我有Symfony和Django的经验.
我有一个类似的coce:
def override_urls(self):
return [
url(r"^(?P<resource_name>%s)/(?P<slug>[\w\d_.-]+)/$" % self._meta.resource_name, self.wrap_view('dispatch_detail'), name="api_dispatch_detail"),
]
Run Code Online (Sandbox Code Playgroud)
这会生成如下URL:
/api/v1/nodes/<slug>/
Run Code Online (Sandbox Code Playgroud)
一切都很好,除了self.get_resource_uri(bundle)返回/api/v1/nodes/<id>/,我无法有效地比较当前的URL和资源URI.
我究竟做错了什么?
我在这里实现了建议的解决方案:https: //github.com/ninuxorg/nodeshot/blob/refactoring/nodeshot/core/base/resources.py
欢迎任何其他改进反馈.