قائمة () لا يعمل في إلى AppEngine؟
-
05-07-2019 - |
سؤال
واني اسعى الى استخدام وظيفة تعيين في إلى AppEngine، لإعداد قائمة مع عناصر فريدة من نوعها. أنا اصطدم بعقبة عندما كتب رمز الثعبان الذي يعمل بشكل جيد في وعاء الثعبان ولكن ليس في إلى AppEngine + جانغو
وهذا ما أنوي القيام به (ركض هذا البرنامج النصي في IDLE):
import re
value=' r.dushaynth@gmail.com, dash@ben,, , abc@ac.com.edu '
value = value.lower()
value = list(set(re.split('^\s*|\s*,+\s*|\s*$', value)))
if (value[0] == ''):
value.remove('')
print value
والناتج المطلوب هو (حصلت على هذا الناتج في IDLE):
['dash@ben', 'abc@ac.com.edu', 'r.dushaynth@gmail.com']
والآن عندما أفعل شيئا ما يعادلها في ملفي views.py في إلى AppEngine:
import os
import re
import django
from django.http import HttpResponse
from django.shortcuts import render_to_response # host of other imports also there
def add(request):
value=' r.dushaynth@gmail.com, dash@ben,, , abc@ac.com.edu '
value = value.lower()
value = list(set(re.split('^\s*|\s*,+\s*|\s*$', value)))
if (value[0] == ''):
value.remove('')
return render_to_response('sc-actonform.html', {
'value': value,
})
وأحصل على هذا الخطأ أثناء الذهاب إلى الصفحة المناسبة (لصق traceback):
Traceback (most recent call last):
File "G:\Dhushyanth\Google\google_appengine\lib\django\django\core\handlers\base.py" in get_response
77. response = callback(request, *callback_args, **callback_kwargs)
File "G:\Dhushyanth\development\AppengineProjects\trunk_sanjhachoolha\sandbox\dushyanth\sanjhachoolha\views.py" in add
148. value = list(set(re.split('^\s*|\s*,+\s*|\s*$', value)))
File "G:\Dhushyanth\development\AppengineProjects\trunk_sanjhachoolha\sandbox\dushyanth\sanjhachoolha\views.py" in list
208. return respond(request, None, 'sc-base', {'content': responseText})
File "G:\Dhushyanth\development\AppengineProjects\trunk_sanjhachoolha\sandbox\dushyanth\sanjhachoolha\views.py" in respond
115. params['sign_in'] = users.create_login_url(request.path)
AttributeError at /sanjhachoolha/acton/add
'set' object has no attribute 'path'
وعلى تعليقه من:
#value = list(set(re.split('^\s*|\s*,+\s*|\s*$', value)))
وأحصل على النتيجة المرجوة في صفحة الويب المناسبة:
r.dushaynth@gmail.com, dash@ben,, , abc@ac.com.edu
وأنا واثق من أن قائمة () هي جذر مشاكلي. يمكن لأي شخص أن توحي لماذا يحدث هذا. يرجى تشير أيضا إلى البدائل. والهدف من ذلك هو إزالة التكرارات من القائمة.
والشكر
المحلول
ويبدو أنك نفذت الدالة القائمة الخاصة (). يجب أن تكون البيانات return
لها في السطر 208 من الملف الخاص بك (views.py). يجب إعادة تسمية وظيفة list()
الخاص بك إلى شيء آخر (حتى list_()
).
وتحرير: كما يمكنك تغيير لك التعبير العادي، مثل هذا:
import re
value=' r.dushaynth@gmail.com, dash@ben,, , abc@ac.com.edu '
value = value.lower()
#value = list(set(re.split('^\s*|\s*,+\s*|\s*$', value)))
#if (value[0] == ''):
# value.remove('')
value = set(re.findall(r'[\w\d\.\-_]+@[\w\d\.\-_]+', value))
print value
وre.findall()
إرجاع list
جميع أحداثا مطابقة.