我有一个使用AlarmService的Android应用程序.根据文档,我不应该允许安装/移动此应用程序到外部存储.但是,用户不理解这一点(可能是由于某些设备上的内部存储空间很小) - 并要求选择在外部存储上安装(通过低星级评级).
我需要在启动时重新注册警报并让BroadcastReceiver监听BOOT_COMPLETED.但是,对于安装在SD卡上的应用程序,不会调用此方法,因为尚未安装该应用程序,因此会触发该意图.遗憾的是,EXTERNAL_APPLICATIONS_AVAILABLE也没有 - 因此我没有得到启动的通知,因此没有更改重新设置警报.
这种困境有什么办法吗?
是否保证您的公共API返回的电子邮件地址已经过验证?email-address可通过r_emailaddress会员权限访问:https://developer.linkedin.com/docs/fields/basic-profile.
我OuterRef在Django 1.11子查询中使用annotate()时遇到问题.示例模型:
class A(models.Model):
name = models.CharField(max_length=50)
class B(models.Model):
a = models.ForeignKey(A)
Run Code Online (Sandbox Code Playgroud)
现在是一个带有子查询的查询(这没有任何意义,但说明了我的问题):
A.objects.all().annotate(
s=Subquery(
B.objects.all().annotate(
n=OuterRef('name')
).values('n')[:1],
output_field=CharField()
)
)
Run Code Online (Sandbox Code Playgroud)
这会出现以下错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "myapp/models.py", line 25, in a
n=OuterRef('name')
File ".virtualenv/lib/python2.7/site-packages/django/db/models/query.py", line 948, in annotate
if alias in annotations and annotation.contains_aggregate:
AttributeError: 'ResolvedOuterRef' object has no attribute 'contains_aggregate'
Run Code Online (Sandbox Code Playgroud)
是否无法基于OuterRef注释子查询?
找到一个解决方法,这将允许我现在继续前进,但它并不好.
class RawCol(Expression):
def __init__(self, model, field_name, output_field=None):
field = model._meta.get_field(field_name)
self.table = model._meta.db_table
self.column = field.column …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用自定义字体生成包含自定义符号(例如"€")的文本的PDF页面.我使用UIGraphicsBeginPDFContextToData和UIGraphicsBeginPDFPage创建了一个PDF上下文和页面.我的渲染文本代码如下所示:
NSString *fontFile = [[NSBundle mainBundle] pathForResource:@"somefont.otf" ofType:nil];
CGDataProviderRef dataProvider = CGDataProviderCreateWithFilename([fontFile cStringUsingEncoding:NSASCIIStringEncoding]);
CGFontRef cgfont = CGFontCreateWithDataProvider(dataProvider);
CTFontRef ctfont = CTFontCreateWithGraphicsFont(cgfont, 10, NULL, NULL);
CFRelease(dataProvider);
NSString *text = @"Hello €";
int len = [text length];
CGGlyph glyphs[len];
CTFontGetGlyphsForCharacters(ctfont, (const unichar*)[text cStringUsingEncoding:NSUnicodeStringEncoding], glyphs, len);
CGContextSetTextDrawingMode(_context, kCGTextFill);
CGContextShowGlyphsAtPoint(_context, 10, 10, glyphs, len);
CFRelease(cgfont);
CFRelease(ctfont);
Run Code Online (Sandbox Code Playgroud)
渲染€-symbol有效(因为CTFontGetGlyphsForCharacters),但字体未嵌入pdf中.有没有办法做到这一点?
我有一个我想要添加过滤的ModelViewSet.我的简单模型看起来像
class Article(models.Model):
date = = models.DateField()
language = models.CharField(max_length=10)
class Meta:
ordering = ['-date']
Run Code Online (Sandbox Code Playgroud)
和ModelViewSet(只读):
class ArticleViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
Run Code Online (Sandbox Code Playgroud)
关于API的文章现在按照我的预期按日期排序.现在我想允许过滤语言.我已将过滤器后端DjangoFilterBackend设置为settings.py.我更新的ModelViewSet现在看起来像:
class ArticleViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
filter_fields = ['language']
Run Code Online (Sandbox Code Playgroud)
这会将排序更改为语言ASC.添加order_by('-date')到queryset不会改变任何内容.添加ordering = ('-date', )不会改变任何东西.=>如何指定过滤和排序(或只是在允许过滤时使用默认排序)?
编辑:
目前的功能似乎来自AutoFilterSet默认情况下,REST框架建立:
https://github.com/tomchristie/django-rest-framework/blob/822eb39599b248c68573c3095639a831ab6df99a/rest_framework/filters.py#L53
...其中order_by=True并移交这在Django过滤器get_ordering_field的位置:https://github.com/alex/django-filter/blob/d88b98dd2b70551deb9c128b209fcf783b325acc/django_filters/filterset.py#L325
=>似乎我必须创建一个FilterSet类:
class LanguageFilter(django_filters.FilterSet):
class Meta:
model = Article
fields = ['language']
order_by = model()._meta.ordering
class ArticleViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
filter_class = LanguageFilter …Run Code Online (Sandbox Code Playgroud)