小编Asm*_*ari的帖子

ImportError:没有名为PIL的模块

我在shell中使用此命令来安装PIL:

easy_install PIL
Run Code Online (Sandbox Code Playgroud)

然后我跑去python输入:import PIL.但我得到这个错误:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named PIL
Run Code Online (Sandbox Code Playgroud)

我从未遇到过这样的问题,您怎么看?

python easy-install python-imaging-library

171
推荐指数
18
解决办法
49万
查看次数

在django admin中过滤外键字段

我有这些模型:

class Entity(models.Model):
       name=models.CharField(max_length=100)

class Theme(models.Model):
   name=models.CharField(max_length=100)
   entity=models.OneToOneField(Entity)

class Company(models.Model):
    name=models.CharField(max_length=100)
    theme=models.OneToOneField(Theme,null=True,blank=True)
Run Code Online (Sandbox Code Playgroud)

我想在管理员中添加公司时过滤主题字段,有些事情是这样的:

class CompanyAdmin(admin.ModelAdmin):
   def queryset(self, request):
      qs = super(CompanyAdmin, self).queryset(request)
      qs.theme.queryset = Theme.objects.filter(name__iexact='company')
      return qs

admin.site.register(Company,CompanyAdmin)
Run Code Online (Sandbox Code Playgroud)

我尝试过很多东西,但没有人工作过!我怎么能这样做?

python django

23
推荐指数
4
解决办法
2万
查看次数

有一个接受所有字符的网址

我想要一个接受所有字符的网址,例如:

(r'^company/(?P<key>[a-zA-Z]+)/doclist/$','CompanyHub.views.docList')
Run Code Online (Sandbox Code Playgroud)

for key参数而不仅仅是ascii字母字符它接受所有字符包括数字,符号,如$, - ,_,...,字母,unicode字符,...

我怎样才能做到这一点?

python django

18
推荐指数
2
解决办法
2万
查看次数

如何在django模板中显示文本字段的前50个单词

我的Django模板中有这样的字段:

<p>{{news.description}}<p>
Run Code Online (Sandbox Code Playgroud)

我想展示这个领域的前50个单词.我该怎么做?

python django

14
推荐指数
1
解决办法
6170
查看次数

在模板中使用slugify

我想要SEO-friendly URL,我现在的网址urls.py:

(ur'^company/news/(?P<news_title>.*)/(?P<news_id>\d+)/$','CompanyHub.views.getNews')
Run Code Online (Sandbox Code Playgroud)

我在模板中使用它:

{% for n in news %}
     <a href="{% url CompanyHub.views.getNews n.title,n.pk %}" >{{n.description}}</a>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我用它news_id来对get新闻对象PK.我想转换这个网址:

../company/news/tile of news,with comma/11
Run Code Online (Sandbox Code Playgroud)

至:

../company/news/tile-of-news-with-comma/11
Run Code Online (Sandbox Code Playgroud)

通过在模板中做这样的事情:

{% for n in news %}
      <a href="{% url CompanyHub.views.getNews slugify(n.title),n.pk %}" >{{n.description}}</a>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我检查了这些问题: question1 question2 question3和这篇文章,但他们保存slugify field在数据库中,而我想要按需生成它.另外我想运行查询news_id.

我认为这个问题很好,但我不知道怎么news_id用来取我的news object

python django django-templates

11
推荐指数
2
解决办法
6345
查看次数

迭代django中的相关对象

我有这些模型:

class Person(models.Model):
   name=models.CharField(max_length=100)
   family=models.CharField(max_length=100)

class MailContact(models.Model):
   person=models.ForeignKey(Person)
   email=models.CharField(max_length=100)
   #some fields

class Participant(models.Model):
   person=models.ForeignKey(Person)
   #some fields
Run Code Online (Sandbox Code Playgroud)

views.py:

   emails = []
   for participant in participants:
      for contact in participant__person__mailContact_set:
         emails.append(contact.email)
   send_mail(email_subject,email_body,'receiver_email_address@gmail.com',emails,fail_silently=False)
Run Code Online (Sandbox Code Playgroud)

我已经在很多方面改变了这段代码,但我反复得到这个错误:

global name 'participant__person__mailContact_set' is not defined
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

python django

9
推荐指数
1
解决办法
3727
查看次数

比较日期和月份的日期字段大于

我打算做这个查询:

today = datetime.date.today()
year=today.year
month=today.month
news=News.objects.filter(date__year__lt = year,date__month__lt=month)
Run Code Online (Sandbox Code Playgroud)

注意:新闻对象有一个名为date 但是我收到此错误的字段:

Join on field 'date' not permitted. Did you misspell 'year' for the lookup type?
Run Code Online (Sandbox Code Playgroud)

你有什么想法?

提前致谢

python django

4
推荐指数
1
解决办法
4638
查看次数

错误:"CSRF验证失败.请求中止." 当使用jquery ajax与Django时

在模板中:

<script type="text/javascript">
        $.ajax({
             type:"POST",
             url:"{% url DrHub.views.ajxTest %}",
             data: {
                    'start': $('#id_startTime').val(),
                    'end': $('#id_endTime').val(),
                    'csrfmiddlewaretoken': '{{ csrf_token }}'
             },
             success: function(data){
                 alert(data);
             }
        });
</script>
.
.
.
<form method='POST' action=".">
    {% csrf_token %}
    <input type="text id="id_startTime" />
    <input type="text id="id_endTime" />
    <input type="submit" value="send" />
</form>
Run Code Online (Sandbox Code Playgroud)

在观点中:

def ajxTest(request):
   if request.is_ajax():
      if request.method == 'POST':
         return HttpResponse(json.dumps({'message' : 'awesome'},ensure_ascii=False), mimetype='application/javascript')
Run Code Online (Sandbox Code Playgroud)

在settings.py中:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.locale.LocaleMiddleware',
)
Run Code Online (Sandbox Code Playgroud)

提交表单时我有这个错误:CSRF verification failed. Request aborted. …

python django ajax jquery

4
推荐指数
1
解决办法
8544
查看次数

在ModelFormSet中编辑相关对象

我有这些模型:

class Gallery(models.Model):
   HeadImage = models.ImageField(upload_to="gallery")

class Image(models.Model):
   Image = models.ImageField(upload_to="gallery")
   Gallery = models.ForeignKey(Gallery, related_name='images')

class Tour(models.Model):
   Name=models.CharField(max_length=100)
   Count=models.SmallIntegerField() 
   ActionUser=models.ForeignKey(User,editable=False)
   Gallery = models.OneToOneField(Gallery,editable=False)
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我有一个巡回表格,一个画廊的表格和画廊的图像集,在编辑视图中我想用它的画廊和画廊的图像编辑一个游览.这是用它的相关对象编辑游览的代码:

def edittour(request,key,tour_id):
   ImageFormSet = inlineformset_factory(Gallery,Image, can_delete=False,extra=4)
   tourinstance=Tour.objects.get(pk=tour_id)
   if request.method == 'POST':
      gform=GalleryForm(request.POST,request.FILES,instance=tourinstance.Gallery)
      if gform.is_valid():
         gallery=gform.save(commit=False)
         formset=ImageFormSet(request.POST, request.FILES, instance=tourinstance.Gallery)
         if formset.is_valid():
            gallery.save()
            formset.save()
         tform = TourForm(request.POST, request.FILES,instance=tourinstance)
         if tform.is_valid():
            tour=tform.save(commit=False)
            tour.ActionUserCode=User.objects.get(pk=1)
            tour.save()
            return render_to_response('airAgency/edittour.html', {'tform': tform,'gform':gform,'formset':formset})#'airAgency/edittour/%i/' % (tour.pk))
   else:
      pass
   tform = TourForm(instance=tourinstance)
   gform=GalleryForm(instance=tourinstance.Gallery)
   formset=ImageFormSet(instance=tourinstance.Gallery)
   return render_to_response('airAgency/edittour.html', {'tform': tform,'gform':gform,'formset':formset})
Run Code Online (Sandbox Code Playgroud)

当我编辑Tour时,这很有效,但是当我编辑与gallery相关的Image_set时,它有以下错误:

MultiValueDictKeyError at /airAgency/mastane/edittour/1/

"Key 'images-0-id' not found …
Run Code Online (Sandbox Code Playgroud)

python django

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

如何用破折号替换所有空格,制表符,换行符,逗号和下划线?

我想编写一个模板标签,用破折号替换空格,制表符,新行,逗号,下划线,以建立一个SEO友好的URL:

re.sub('\s+', '-', str)
Run Code Online (Sandbox Code Playgroud)

这行代码用dash替换空格:

re.sub('(?<=[,.?!\t\n ])+', '-', str)
Run Code Online (Sandbox Code Playgroud)

这行代码应该?<=[,.?!?用dash 替换和替换,但事实并非如此.

python regex django

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