无意中,我已将.pyc文件推送到主存储库.现在我想删除它们,但我不能这样做.有没有办法直接从Bitbucket网站删除它们?
我的问题与Django RestFramework有关,关于如何对元素进行分组.
这是我的serializers.py
from collaborativeAPP.models import *
from rest_framework import serializers
class VocabSerializer(serializers.ModelSerializer):
term_word = serializers.CharField(source='term.word',read_only=True)
kwdGroup = serializers.StringRelatedField()
class Meta:
model = Vocab
fields = ('id','term_word', 'meaning','kwdGroup')
class TermSerializer(serializers.ModelSerializer):
word = serializers.CharField(read_only=True)
class Meta:
model = Term
fields = ('url', 'word')
Run Code Online (Sandbox Code Playgroud)
以下json是实际结果:
{"results":[
{
"id": 5,
"term_word": "word1",
"meaning": "Text1"
"kwdGroup": "A"
},
{
"id": 6,
"term_word": "word2",
"meaning": "Text2"
"kwdGroup": "A"
},
{
"id": 7,
"term_word": "word3",
"meaning": "Text3"
"kwdGroup": "A"
}
]}
Run Code Online (Sandbox Code Playgroud)
你可以注意到"kwdGroup"是一个重复的元素,我要分组.
我想按kwdGroup分组
{"A":[
{ …Run Code Online (Sandbox Code Playgroud) 如何打印带有"à"或"ç"等特殊字符的json?
我可以这样打印:
import json
weird_dict ={"person": "ç", "á": 'à', "ç": 'ã'}
print json.dumps(weird_dict, indent=4, sort_keys=True)
output:
{
"person": "\u00e7",
"\u00e1": "\u00e0",
"\u00e7": "\u00e3"
}
Run Code Online (Sandbox Code Playgroud)
如果我使用'ensure_ascii = False'
weird_dict={"person": "ç", "á": 'à', "ç": 'ã'}
print json.dumps(weird_dict, indent=4, sort_keys=True, ensure_ascii=False)
output:
{
"person": "ç",
"á": "à ",
"ç": "ã"
}
Run Code Online (Sandbox Code Playgroud)
如何使用json克服特殊字符问题?我需要渲染当我使用pystache并尝试打印pystache.render('嗨{{person}}!',weird_dict)它发生在我身上:
"'ascii' codec can't decode byte 0xc3 in position 4770: ordinal not in range(128)"
Run Code Online (Sandbox Code Playgroud) class AKeywords(models.Model):
id = models.AutoField(primary_key=True, db_column="kw_id")
word = models.CharField(max_length=200)
...
class Meta:
managed = False
db_table = '"A"."Keywords"'
Run Code Online (Sandbox Code Playgroud)
class BKeywords(models.Model):
id = models.AutoField(primary_key=True, db_column="kw_id")
word = models.CharField(max_length=200)
...
class Meta:
managed = False
db_table = '"B"."Keywords"'
Run Code Online (Sandbox Code Playgroud)
我有另一个模型,我想在其中执行我的加入。
class XKeywords(models.Model):
...
k_id = models.IntegerField(blank=True, null=True)
...
class Meta:
managed = False
db_table = '"public"."XKeywords"'
Run Code Online (Sandbox Code Playgroud)
我有两个非常相似的模型,一个来自数据库模式,另一个来自另一个数据库模式。将与表 A 或 B 连接的第三个模型是我想要的。
如何在不使用外键和原始查询的情况下加入模型 A 或 B?
我正在尝试使用Django REST Framework将两个模型字段序列化为一个dicts列表.
这是我的model.py:
class Translation(models.Model):
translated_term = models.CharField(max_length=200)
translated_meaning = models.TextField()
language = models.CharField(max_length=200)
vocab = models.ForeignKey(Vocab, related_name='translates')
def __unicode__(self):
return '%s: %s' % ( self.language,self.translated_term)
Run Code Online (Sandbox Code Playgroud)
view.py:
class VocabViewSet(viewsets.ModelViewSet):
queryset = Vocab.objects.all()
serializer_class = VocabSerializer
Run Code Online (Sandbox Code Playgroud)
serializer.py:
class VocabSerializer(serializers.ModelSerializer):
...
translates= serializers.StringRelatedField(many=True)
...
class Meta:
model = Vocab
fields = (...,'translates',...)
Run Code Online (Sandbox Code Playgroud)
Api结果:
{
.....
"translates": [
"EN: Abyssal zone"
],
....
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何将我的翻译设置为这样的词组列表:
预期的API结果:
{
.....
"translates": [
{EN: "Abyssal zone"}
],
....
}
Run Code Online (Sandbox Code Playgroud)
我正在关注文档, …
基于 googleAPI 文档:https : //developers.google.com/chart/interactive/docs/gallery/columnchart?hl= en
正如您在“标记列”部分中看到的,每列都标有一个静态值。我想知道是否可以用所有总和的特定值标记一列。
// Set chart options
var options = {
width: 400,
height: 300,
calc:????
};
Run Code Online (Sandbox Code Playgroud)
我应该使用特定功能设置这个“calc”字段吗?
我不知道如何使用每个堆叠列的总和值自定义标签。
我正在尝试设置使用 Django 发送电子邮件的超时时间。我正在使用 django 1.7.3 和 python v2.7.6。我的方法是按照此处的 django 文档进行操作。所以我所做的是通过使用以下代码在 django/core/mail/backends 文件夹上创建一个名为 myemailbackend.py 的文件来创建一个自定义电子邮件后端:
from django.core.mail.backends import smtp
class MyEmailBackend(smtp.EmailBackend):
def __init__(self, *args, **kwargs):
kwargs.setdefault('timeout', 3) #this is 3 secs, i believe.
super(MyEmailBackend, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
之后在我的 settings.py 中我设置了我的 EMAIL_BACKEND:
# Email setup
EMAIL_BACKEND = 'django.core.mail.backends.base.myemailbackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'xxxx@gmail.com'
EMAIL_HOST_PASSWORD = 'xxx'
EMAIL_PORT = 587
# EMAIL_TIMEOUT = 3 # 3 sec, this would be great but i notice that this is not …Run Code Online (Sandbox Code Playgroud) 当我尝试使用Django-REST-FRAMEWORK注册2个以上的路由器时,我遇到了问题.请看一下我的例子:
urls.py
from rest_framework import routers
from collaborativeAPP import views
router = routers.DefaultRouter()
router.register(r'get_vocab', views.VocabViewSet)
router.register(r'get_term', views.TermViewSet)
router.register(r'get_discipline', views.DisciplineViewSet)
urlpatterns = patterns(
...
url(r'^service/', include(router.urls))
)
Run Code Online (Sandbox Code Playgroud)
views.py
class VocabViewSet(viewsets.ModelViewSet):
queryset = Vocab.objects.all()
serializer_class = VocabSerializer
class TermViewSet(viewsets.ModelViewSet):
queryset = Term.objects.all()
serializer_class = TermSerializer
class DisciplineViewSet(viewsets.ModelViewSet):
queryset = Vocab.objects.filter(kwdGroup=4)
serializer_class = DisciplineSerializer
Run Code Online (Sandbox Code Playgroud)
我的localhost中的结果如下:
HTTP 200 OK
Content-Type: application/json
Vary: Accept
Allow: GET, HEAD, OPTIONS
{
"get_vocab": "http://127.0.0.1:8000/service/get_discipline/",
"get_term": "http://127.0.0.1:8000/service/get_term/",
"get_discipline": "http://127.0.0.1:8000/service/get_discipline/"
}
Run Code Online (Sandbox Code Playgroud)
正如你可以看到我已经注册了3个路由器期待,他们将展示3个网址为每个方法名(get_vocab,get_term,get_discipline).最终结果是 …
嗨,我想只提供一对没有REST服务键的值:
看看我的serializers.py:
class TranslationSerializer(serializers.ModelSerializer):
translated_term = serializers.CharField(read_only=True)
class Meta:
model = Translation
fields = ('language','translated_term')
class VocabSerializer(serializers.ModelSerializer):
...
translates = TranslationSerializer(many=True, read_only=True)
...
class Meta:
model = Vocab
fields = ( ..., 'translates',...)
Run Code Online (Sandbox Code Playgroud)
结果如下:
"translates": [
{
"language": "EN",
"translated_term": "Chair"
}
{
"language": "IT",
"translated_term": "asd"
}
],
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,此结果将该字段的名称显示为该字段值旁边的dict键.但我希望有一个不同的结构.如下:
"translates": [
{
"EN": "Chair", "IT":"asd"
}
],
Run Code Online (Sandbox Code Playgroud)
此示例显示了一对键/值,其中key是语言字段值,dict的值是已翻译字段的值.
如何只显示"语言"字段的值与"已翻译"字段而没有字段名称?
我无法理解为什么这适用于if声明而不是switch:
if ((int)typeOfHall == 1) {//LocalHall
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Game"];
NSPredicate *p = [NSPredicate predicateWithFormat:@"player_id == %@ ",[[NSUserDefaults standardUserDefaults] valueForKey:@"LoggedUserId"]];
request.predicate = p;
}
Run Code Online (Sandbox Code Playgroud)
下面的代码不起作用(编译错误:( Expected expression在NSFetchRequest上)):
switch ((int)typeOfHall) {
case 1:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Game"]; //Error Expected expression
NSPredicate *p = [NSPredicate predicateWithFormat:@"player_id == %@ ",[[NSUserDefaults standardUserDefaults] valueForKey:@"LoggedUserId"]];
request.predicate = p;
break;
default:
break;
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会这样.我认为switch和if语句是相似的,但在这种情况下它似乎是非常不同的.
你知道为什么会这样吗?
django ×6
python ×4
json ×2
rest ×2
charts ×1
dictionary ×1
email ×1
git ×1
if-statement ×1
join ×1
objective-c ×1
orm ×1
pyc ×1
pystache ×1
xml ×1