小编Mar*_*rek的帖子

DRF 中的动作装饰器不适用于 url_path

我试图实现这样的端点/api/messages/<str:email>/将返回给定电子邮件的消息列表。
所以在我的 ViewSet 中我创建了一个带有@action装饰器的函数

@action(
    detail=False,
    methods=["get"],
    name="Get email messages",
    url_path="<str:email>",
    url_name="Email's messages"
)
def email_messages(self, request, email=None):
    return Response({"aaa": email}, status=200)
Run Code Online (Sandbox Code Playgroud)

但 django 似乎无法解决,例如。这个url:(/api/messages/aaa/仅用于测试)并返回404。

即使我更改url_pathemail它也会返回 404 /api/messages/email/url_path仅当我从参数中删除 kwarg 时它才有效。然后就可以在 下访问了/api/messages/email_messages

GET我怎样才能实现工作/api/messages/<str:email/以便将电子邮件传递给该函数?

django django-rest-framework

11
推荐指数
1
解决办法
1万
查看次数

在迭代IReadOnlyCollection中的元素时,FindElement不会迭代

我有这部分代码让我发疯.
我正在迭代从HTML中获取的元素.
structureElement似乎包含了精细元素,但是当我在它上面运行.FindElement()时,它始终返回第一次迭代的值.为什么?grrrrrrrr
这是我的代码:

IReadOnlyCollection<IWebElement> structureElements =
    driver.FindElements(By.XPath(".//div[contains(@id, 'PSBTree_x-auto-')]"));
//.Where(sE => sE.FindElement(By.XPath("//img[@title]")).GetAttribute("title") != "Customer Item")
IWebElement tmp;
foreach (IWebElement structureElement in structureElements)
{
    //if (structureElement.FindElement(By.XPath("//span//img[@title]")).GetAttribute("title").Contains("Customer Item"))
    //    continue;
    tmp = structureElement.FindElement(By.XPath("//span[@class='cat-icons-tree']/img"));
    ReportProgress(progress, ref r, ct, allsteps, message + tmp.GetCssValue("background"));
    Thread.Sleep(100);
    ReportProgress(progress, ref r, ct, allsteps, message + structureElement.Text);
    Thread.Sleep(300);
}
Run Code Online (Sandbox Code Playgroud)

c# selenium c#-5.0 phantomjs selenium-webdriver

5
推荐指数
1
解决办法
300
查看次数

DrawableLeft与文本居中

我无法将drawableLeft图标居中。
我可以轻松地将图标放在文本的左侧,但是如果将重力设置为居中,则只有文本居中,而没有图标。

<Button
    android:id="@+id/patient_list_button"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/patientList"
    android:drawableLeft="@drawable/ic_icon_two_heads"
    android:layout_marginBottom="15dp"
    style="@style/darkBlueButtonWithImage"/>
Run Code Online (Sandbox Code Playgroud)

这就是我要的:
在此处输入图片说明
这就是我所拥有的:
在此处输入图片说明

<style name="darkBlueButtonWithImage">
    <item name="android:drawablePadding">10dp</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:paddingLeft">10dp</item>
    <item name="android:background">@drawable/radius_dark_blue_button</item>
    <item name="android:gravity">center_vertical|left</item>
    <item name="android:drawableTint">@color/white</item> <!-- has to be set in activity.java -->
</style>
Run Code Online (Sandbox Code Playgroud)

我该如何实现?

android android-layout

5
推荐指数
2
解决办法
2863
查看次数

更容易编写条件语句的方法

有没有更漂亮的方法来编写这个if语句:

if not (self.is_legal(l) or self.is_legal(u) or self.is_legal(r) or self.is_legal(d)):
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它没有用.

if not self.is_legal(l or r or d or u):
Run Code Online (Sandbox Code Playgroud)

或者第一个可能是最漂亮的?

python if-statement conditional-statements

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

仅当变量为True时才执行函数

我想只在语句为True时才运行函数.例如,我有:

def foo():
    # do something
Run Code Online (Sandbox Code Playgroud)

我只想在这个时候运行它

var == True
Run Code Online (Sandbox Code Playgroud)

而在关键的处理我希望做这样的事情:

if k.key() == Key_UP and var:
    foo()
Run Code Online (Sandbox Code Playgroud)

我从多个地方调用此函数,我不想重复var条件.另外,我想要这样的东西:

def foo():
    if var:
        # do something
Run Code Online (Sandbox Code Playgroud)

我展示的最后一个是最接近我的需求,但我认为它可以通过其他方式完成.Python 3的惯用语.

问候!

PS.我想得到这样的东西:

def foo() if var == True:
    # do something
Run Code Online (Sandbox Code Playgroud)

python methods idiomatic

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

无法在robocode中打印到控制台

我正在尝试向控制台写任何东西,但没有运气.

System.out.println("abc");
Run Code Online (Sandbox Code Playgroud)

应该工作,但事实并非如此.这是我的全部代码:

import robocode.HitWallEvent;
import robocode.Robot;

public class MyRobot extends Robot
{

    @Override
    public void run()
    {
        while (true)
        {
            ahead(20);
            System.out.println("Test Test");
        }
    }

    @Override
    public void onHitWall(HitWallEvent event)
    {
        System.out.println("Ouch, I hit a wall bearing " + event.getBearing() + " degrees.");
    }
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

最好的祝福!

java robocode

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

从字符串中删除/替换每个第n,第m和第i个字符

删除/替换我的字符串中的每个第n,第m和第i个字符我做错了什么?

''.join('*' if any(i % n == 0 for n in [9, 10, 11]) 
        else char for i, char in enumerate(string))
Run Code Online (Sandbox Code Playgroud)

对于:

string = "100000000111000000001110000000011"
Run Code Online (Sandbox Code Playgroud)

它返回:

*00000000***000000*0*1*0000*00*11
Run Code Online (Sandbox Code Playgroud)

代替:

*00000000***00000000***00000000**
Run Code Online (Sandbox Code Playgroud)

python python-3.x

0
推荐指数
1
解决办法
385
查看次数